秦皇岛seo博主拥有多年seo,网络营销推广经验,曾服务于多家中大型企业,众多成功案例,可为您提供专业的网站seo,网络营销推广,网站建设等服务。点击这里给我发消息

Python中的__SLOTS__属性使用示例

python 秦皇岛seo 790℃ 0评论

看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用

python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots__后,实例就只会含有__slots__里有的属性名。

# coding: utf-8  class A(object):  x = 1   def __init__(self):    self.y = 2 a = A()print a.__dict__print(a.x, a.y)a.x = 10a.y = 10print(a.x, a.y)  class B(object):  __slots__ = ('x', 'y')  x = 1  z = 2   def __init__(self):    self.y = 3    # self.m = 5 # 这个是不成功的  b = B()# print(b.__dict__)print(b.x, b.z, b.y)# b.x = 10# b.z = 10b.y = 10print(b.y)  class C(object):  __slots__ = ('x', 'z')  x = 1   def __setattr__(self, name, val):    if name in C.__slots__:      object.__setattr__(self, name, val)   def __getattr__(self, name):    return "Value of %s" % name  c = C()print(c.__dict__)print(c.x)print(c.y)# c.x = 10c.z = 10c.y = 10print(c.z, c.y)c.z = 100print(c.z)

{'y': 2}(1, 2)(10, 10)(1, 2, 3)10Value of __dict__1Value of y(10, 'Value of y')100 

转载请注明:老街华纳公司开户-MD62333 » Python中的__SLOTS__属性使用示例

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址