__slots__ 1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性)2.引子:使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的)3.为何使用__slots__:字典会占用大量内存,如果你有一个属性很少的类,但是有很多实例,为了节省内存可以使用__slots__取代实例的__dict__当你定义__slots__后,__slots__就会为实例使用一种更…
目录: 一. __getattribute__ 二.__str__,__repr__,__format__ 三.__doc__ 四.__module__和__class__ 一. __getattribute__                                                                class Foo: def __init__(self,x): self.x=x def __getattr__(self, item): print('执行…
__module__ 和  __class__  __module__ 表示当前操作的对象在那个模块 __class__     表示当前操作的对象的类是什么 创建一个目录lib 在day7 目录下创建一个index.py 文件 aa.py 代码 class C: def __init__(self): self.name = "jianlin" index.py 代码 from lib.aa import C obj = C() print(obj.__module__) # 输出…
面向对象,即是将具备某种共性的事物抽象成一个类(模板),然后再根据类来创建实例对象进行具体的使用. 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 本节学习目标: 创建类和对象 面向对象三大特性:封装.继承.多态 类成员:变量(类变量,实例变量).方法(普通方法,类方法,静态方法).属性) 类和对象在内存中的保存情况 类成员修饰符:公有成员xx,私有成员__…
前言:python3.x部分学习笔记,有意交流学习者可加wechat:YWNlODAyMzU5MTEzMTQ=.如果笔记内容有错,请指出来. 对数据类型的操作 可变数据类型:列表,集合,字典 列表: li=['a','b'] 增: li.insert(2,'c') #在序号2位置上插入'c' li.append('d') #在列表末尾添加'd' li.extend(li2) #在列表li后面添加li2 删: li.remove('c') del li[2] li.pop(3) 改: li[2]=…
不加的叫做经典类或旧式类,但是现在python3的类都默认是继承了object的,所以可写可不写 下面举个例子说明: 首先说明下__class__功能与用法: __class__功能和type()函数一样,都是查看对象所在的类. __class__可以套用 在python3的环境下运行: #coding:utf- #不继承 class Car(): pass #继承 class Bag(object): pass if __name__ == "__main__": car = Car…
总结:和类的关联性讲:属性方法>类方法>静态方法 属性方法@property:仅仅是调用方式不用+括号. 类方法@classmethod:访问不了累的属性变量,只可以访问类变量. 静态方法@staticmethod:仅仅是通过类名来调用这个函数而已,和类本身已经没有功能关系了,严格讲已经不是类的方法而是一个通过类名调用的函数而已(无法访问实例化的类的任何属性过着其他方法). 在类中的方法加如下装饰器 属性方法:@property将方法变为类的一个静态属性,调用的时候无需加括号.对外隐藏实现细节…
一句话说明 __slots__是用来限制实例的属性的,__slots__可以规定实例是否应该有__dict__属性:__slots__不能限制类的属性. 只有__slots__列表内的这些变量名可赋值为实例属性. class A: __slots__=['name'] def __init__(self): self.name='js' self.age=22 a=A() 运行结果: Traceback (most recent call last): File "a.py", lin…
之所以给它起名为禁锢术,并非空缺来风,下面我们来了解一下__slost__ __slost__:其实就是将类中的名称锁定,实例化对象,只可以赋值和调用,不可以删除名字和增加新的名字 代码示例:(实例化对象示例) # 编辑者:闫龙 class Foo: __slots__ = ["x","y"]#在类中定义属性x和y f = Foo()#实例化Foo f.x = 1#此时我们可以使用实例化对象调用类中的属性x f.y = 2 #如果现在,我们在实例化对象中增加一个z…
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __getattribute__ 描述符(__get__,__set__,__delete__) 再看property __setitem__,__getitem,__delitem__ __str__,__repr__,__format__ __slots__…