(慎用)是一个类变量,变量值可以是字符串、列表、元组或者可迭代对象(意味着所有实例只有一个数据属性)
为何使用__slots__?优势在于省内存(字典会占用大量内存,如果有一个属性很少的类,但是有很多实例,为了节省内存可以使用__slots__取代实例的__dict__,设置了__slots__之后,__dict__就没了)
使用点来访问属性本质就是在访问类或对象的__dict__属性字典(类的字典是共享的,而每个实例是独立的)
特点:不允许设置其他数据属性。
1 class Foo:
2 __slots__=['name','age'] #{'name':None,'age':None}
3 # __slots__='name' #{'name':None,'age':None}
4
5 f1=Foo()
6 # f1.name='egon'
7 # print(f1.name)
8
9 # f1.age=18 #--->setattr----->f1.__dict__['age']=18
10
11 # print(f1.__dict__)
12 print(Foo.__slots__)
13 print(f1.__slots__)
14 f1.name='egon'
15 f1.age=17
16 print(f1.name)
17 print(f1.age)
18 # f1.gender='male'
19
20
21 f2=Foo()
22 print(f2.__slots__)
23 f2.name='alex'
24 f2.age=18
25 print(f2.name)
26 print(f2.age)
输出
['name', 'age']
['name', 'age']
egon
17
['name', 'age']
alex
18
继续阅读与本文标签相同的文章
上一篇 :
pythone 自定制format
-
打通“最后一公里”送药地图 访海派医药集团总经理张翔
2026-05-18栏目: 教程
-
上海首个保税展示展销场所亮相 海外商品“全球同质同价”
2026-05-18栏目: 教程
-
微信聊天记录导出excel使用方法分享卓师兄微信恢复大师
2026-05-18栏目: 教程
-
用好SmartArt,快速制作美观工整的PPT
2026-05-18栏目: 教程
-
CMU 15-721 15-查询执行和处理过程 Query Execution & Processing
2026-05-18栏目: 教程
