类属性

一、Django ORM

匿名 (未验证) 提交于 2019-12-02 22:56:40
O(objects):类和对象。 R(Relation):关系,关系数据库中的表格。 M(Mapping):映射。 Django ORM 框架的功能: 二. Django配置使用mysql数据库 修改settings.py中的DATABASES。 注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创建。 # python3需要安装pymysql: pip install pymysql # python3中安装好pymysql,需要在 项目名/__init__.py中加如下内容: import pymysql pymysql.install_as_MySQLdb() 插入一些数据,验证下。在此之前,请自己手动建表。 insert into booktest_bookinfo(btitle,bpub_date,bread,bcomment,isDelete) values ('射雕英雄传','1980-5-1',12,34,0), ('天龙八部','1986-7-24',36,40,0), ('笑傲江湖','1995-12-24',20,80,0), ('雪山飞狐','1987-11-11',58,24,0); insert into booktest_heroinfo(hname,hgender,hbook_id,hcomment,isDelete)

Python基础班每日整理(六)

匿名 (未验证) 提交于 2019-12-02 22:56:40
03_面向对象_day03 类属性和实例属性的概念。 类属性是给类对象(类是一个特殊的对象)中定义的属性,通常用来记录与这个类相关的特征,类属性不会用于记录具体对象的特征。类属性的定义是在初始化方法之外的 实例对象的属性叫做实例属性,在初始化方法内部定义 类属性和实例属性的访问 类属性的访问是类名.类属性 实例属性的访问是实例对象.属性名,也可以在类内部使用self.属性名访问 类方法的定义和使用 br/>@classmethod def 类方法名(cls): pass 需要修饰器@classmethod来标识,第一个参数必须是cls,代表当前类对象本身。可以通过类名.类方法()来调用 静态方法的定义和使用 类方法,静态方法和实例方法的区别 类方法就是针对类对象定义的方法,在类方法内部可以直接访问类属性或者调用其他的 类方法,使用@classmethod标识,需要传递cls参数,代表类对象本身。 单例模式的定义 只有一个实例 new 和 init 方法的调用顺序 先执行 new 方法,会返回为创建对象的引用,然后才会执行 init 方法 了解异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常 try except 捕获异常 else finally在异常中的作用 else是没有发生异常才会执行

1.2Java面试题及回答集锦

匿名 (未验证) 提交于 2019-12-02 21:53:52
1、问题:如果A和B对象循环引用,是否可以被GC? 回答:可以,现在的虚拟机基本都是通过可达性分析算法来判断对象是否存活的,而不是通过简单的引用计数法来判断对象是否存活。可达性分析算法使用一系列的“GC Roots”对象(虚拟机栈中引用的对象、静态属性引用对象)作为起始点,这些节点向下搜索的路径称为引用链,当一个对象到GC Roots没有任何引用链连接,则证明对象是不可用的。 2、Java中的内存溢出是如何造成的? OutOfMemoryError: (1)PerGern Space 程序中使用了大量jar或class,使Java虚拟机装载类空间不够。 解决方案:调参XX:PermSize 和 XX:MaxPermSize 、减少jar包,减少类的重复加载 (2)Java Heap Space Java虚拟机创建了太多的对象。 解决方案:调参Xms(初始堆大小)Xmx(最大堆大小)、检查死循环或不必要创建的重复对象 解决方案:调整JVM中线程大小。 3、 String s = “123”;这个语句有几个对象产生? 若字符串池中没有"123",则产生一个对象,并且放入常量池中,若有"123",则产生0个对象。 若是String s = new String("123"),若常量池中没有,则在常量池中创建一个,然后在堆内存中创建一个。 4、 Error

python 面向对象:类属性

夙愿已清 提交于 2019-12-02 05:47:39
一、概念和使用 类属性 就是给 类对象 定义的 属性 通场用来记录 与这个类相关 的特征 类属性 不会用于 记录 具体对象的特征 二、代码演示 示例需求: 定义一个工具类 每件工具都有自己的name 需求--知道使用这个工具类创建了多少个工具对象 class Tool(object): count = 0 def __init__(self, name): self.name = name Tool.count += 1 tool1 = Tool("钳子") tool2 = Tool("扳手") tool3 = Tool("改刀") print(Tool.count)  # 输出:3 来源: https://www.cnblogs.com/testlearn/p/11732715.html

09 单例设计模式、__new__函数

隐身守侯 提交于 2019-12-02 02:08:33
设计模式 设计模式是前任工作的总结和提炼,通常,被人们广泛流传的设计模式都是 针对某一特定问题 的 成熟的解决方案 。 使用设计模式是为了可重用代码、让代码更容易的被他人理解、保证代码的可靠性。 单例设计模式 单例即指只有一个实例 目的:让该类创建的对象,在系统中只有一个实例 每一次创建此类的对象,内存地址都是相同的 单例设计模式的应用场景 音乐播放 对象 回收站对象 打印机对象 。。。 __new__函数 __new_函数是一个内置函数,用来创建一个实例,在内存中为它开辟一个空间,并返回 内存地址 单例模式的思路 定义一个类属性,用以接收实例的地址 拓展__new__函数,判断定义的类属性,如果为空,则调用super().__new__并用类属性接收它返回的地址,然后返回该类属性 如果类属性,则直接返回类属性 这样无论创建多少个对象,他们都指向同一个内存空间,也就是只有一个实例。 单例模式演示 class MusicPlayer(object): instance = None #用以接收对象的内存地址 init_flag = False #判断__init__()用以标记函数有没有被执行过 def __new__(cls, *args, **kwargs): if cls.instance is None: cls.instance = super().__new__(cls)

GUI学习之n——自定义信号

牧云@^-^@ 提交于 2019-12-01 09:07:10
PyQt中是依靠信号——槽的机制来运行,可是有些时候需要我们定义一下些新的信号以满足使用要求,例如按钮是没有右击的效果,那我们怎么创建一个新的信号呢? 首先要注意,新的信号是要以类属性的形式来定义 class BTN(QPushButton): rightClicked = pyqtSignal() #类属性,建立新信号 def __init__(self,*args,**kargs): super().__init__(*args,**kargs) 如果想要在信号中传递参数,就在定义信号的时候定义好参数的数据类型,比如我们想在点击右键的时候发送字符串‘右键被单击’ class BTN(QPushButton): rightClicked = pyqtSignal(str) #类属性,建立新信号 def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) def mousePressEvent(self, evt): super().mousePressEvent(evt) #非常重要,要先继承否则就成重构方法了 if evt.button() == 2: #鼠标右键对应button映射值为2 self.rightClicked.emit('右键被单击') #发射信号并传递参数

数据冗余

六眼飞鱼酱① 提交于 2019-12-01 07:57:23
1 什么是数据冗余 数据冗余:在一个数据集合中重复的数据称为数据冗余。 例如在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。 1. 关系数据库中的数据冗余主要是指关系数据库中同一信息数据的重复存贮。 2. 数据冗余浪费了宝贵的资源,应尽量减少。但关系数据库中为实现一些功能有些数据冗余是必需的。必需的数据冗余主要用于以下用途: ①数据间建立联系,如两表间通过共同属性建立联系 ②数据恢复,如建立备份文件以备正式文件被破坏时恢复 ③数据核查,如设立数据校验位可以检查数据在存贮、传输等过程中的改变 ④数据使用的便利,如为了查看数据的直观,使用数据的方便、高效 ⑤减少数据通讯开销,如分布式数据库在不同场地重复 2 数据冗余形成的原因 关系数据库由表及附属文件组成,其表由属性定义的结构和元组(记录)组成,其属性值域有多种类型,故关系数据库的数据冗余形成的原因有表的重复、属性的重复、元组的重复、属性值的重复4类。 2.1 表的重复 为了数据安全的需要制作备份表,当主表被破坏时可用此恢复数据。分布式数据库为减少数据通讯开销也常重复放表,这种数据冗余在这里是必需数据冗余,不能删除。若是因其他原因产生的非必要的重复表则应予以删除。 2.2 属性重复 有不同表的属性重复和同一表内属性重复2种情况: (1)

类属性,实例属性与类方法,实例方法

跟風遠走 提交于 2019-11-30 18:40:56
属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性:   尽量把需要用户传入的属性作为实例属性,而把同类都一样的属性作为类属性。实例属性在每创造一个实例时都会初始化一遍,不同的实例的实例属性可能不同,不同实例的类属性都相同。从而减少内存。   1:实例属性:     最好在__init__(self,...)中初始化     内部调用时都需要加上self.     外部调用时用instancename.propertyname   2:类属性:     在__init__()外初始化     在内部用classname.类属性名调用     外部既可以用classname.类属性名又可以用instancename.类属性名来调用   3:私有属性:     1):单下划线_开头:只是告诉别人这是私有属性,外部依然可以访问更改     2):双下划线__开头:外部不可通过instancename.propertyname来访问或者更改       实际将其转化为了_classname__propertyname 二:方法   1:普通类方法:     def fun_name(self,...):       pass     外部用实例调用   2:静态方法:@staticmethod       不能访问实例属性!!! 参数不能传入self!!!      

python单例

流过昼夜 提交于 2019-11-29 23:41:11
class ExpressQuery: # 定义类属性记录单例对象引用 _instance = None # 创建单例 def __new__(cls): # 1. 判断类属性是否已经被赋值 if cls._instance is None: cls._instance = super(ExpressQuery, cls).__new__(cls) # 2. 返回类属性的单例引用 return cls._instance def __init__(self): self.host = 'https://wuliu.market.alicloudapi.com' # 阿里云接口url前缀 # 个人code,获取连接 https://market.console.aliyun.com/imageconsole/index.htm # 购买连接 https://market.aliyun.com/products/56928004/cmapi021863.html self.app_code = '' 代码运行时候首先运行__new__方法,再运行__init__,运行__new__的时候判断是否已有实例对象,已有则不再创建,继续使用,没有的情况下则新建 测试: express = ExpressQuery() a = ExpressQuery() b = ExpressQuery()

python笔记二

和自甴很熟 提交于 2019-11-29 19:16:02
# 类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。 # 通过定义一个特殊的__init__方法,在创建实例的时候,就把属性绑上去 class Student(object): # 和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self # Python解释器自己会把实例变量传进去 def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 pass def get_attr(self): print(self.attr1) s = Student(111,222) s.get_attr() # 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__, # 在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 class Student(object): def __init__(self, attr1, attr2): self.attr1 = attr1 self.__attr2 = attr2 pass s = Student(111,222) print(s.attr1) print(s.__attr2) #继承和多态