Python - slots

Python的slots是什么?答案:限制一个类的属性范围.

我什么适合能用到他?答案:当有一天你需要它的时候,你再去找它.它还在那里.

slots

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class You():
pass

me = You()
me.age = 18 # 没报错

class You():
__slots__ = ('age')
pass

me = You()
me.age = 18 # 没报错
me.care = some # 报错,限制了属性只能有age

# 就这么简单

如果有类的继承的话则:

1
2
子类不设置__slots__ ,则子类没有属性限制
子类若设置了__slots__,则限制范围为子类加父类的slots