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'
'''
推荐阅读
发表评论