python 动态语言 __slots__

  • python 是动态语言,就是说可以动态的创建属性,
  • 别的语言不行,再创建类的时候已经规定好了
  • 使用__slots__,注意要用tuple定义同意绑定的属性名称,仅对当前类起作用,对继承的子类是不起作用的
class A(object):
	__slots__=('name','age')   #1.限制属性

	def __init__(self):
		pass


if __name__ == "__main__":
	a = A()
	a.age=10
	a.name="alam"
	a.sex='male'                      #如果没有slots是允许的

	print(a.age)
	print(a.name)
	print(a.sex)                        #如果没有slots是允许的    

'''
a.sex='male'
AttributeError: 'A' object has no attribute 'sex'
'''       

  

posted @ 2017-07-11 21:01  AlamZ  阅读(150)  评论(0编辑  收藏  举报