python中的slots技巧

Slots限制

由于类创建出来的实例化对象可以动态的去追加一些属性,这就会为我们合作编程造成一些困扰。

Class position:

 Def __init__(self,x,y):

  Self.x=x

  Self.y=y

Def main():

 P = postion(1,3)

  1. z=100

Return

但是我们不想这样,我们可以在类里面添加如下

Class position:

 __slots__ = [“x”, “y”]

 Def __init__(self,x,y):

  Self.x=x

  Self.y=y

Def main():

 P = postion(1,3)

  1. z=100#此处则会报错,即使p.__class__.__slots__.append(“z”)了也仍然会报错

Return

对于slots本意去其实是为了提升加载速度,但是产生了一个限制随意添加属性的功能。

你可能感兴趣的:(python)