首页 > 编程语言 > 详细

python----slots属性安全类

时间:2015-10-28 09:28:41      阅读:266      评论:0      收藏:0      [点我收藏+]

问题:__slots__可以用于构造安全的类、如果一个类使用了__slots__那么它的属性就不在自由了。

下面举例说明:

  1、自由属性。

  class person(object):

    def __init__(self,name,age):

      self.Name=name

      self.Age=age

  if __name__==‘__main__‘:

    p=person(‘jianglex‘,100)

    p.ID=007;#由于没有使用slots所以属性是自由的,可以自由设置,就算设置前没有声明也没事。

 

  2、__slots__设置非自由属性

  class person(object):

    __slots__=(‘Name‘,‘Age‘)

    def __init__(self,name,age):

      self.Name=name#注意,__init__的执行在__slots__之后;所以就算在__init__方法里也是不能执行self.ID=007的。

      self.Age=age

  if__name__==‘__main__‘:

    p=person(‘jiangle‘,100)

    p.ID=007#这里会报错,由于我们使用了__slots__来声明属性,所以属性再也不是自由的了。

 

 

 

 

      

python----slots属性安全类

原文:http://www.cnblogs.com/JiangLe/p/4916288.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!