1. 程式人生 > >Python3如何限制新增屬性

Python3如何限制新增屬性

限制新增屬性

             格式:__slots__=()   小括號代表元組,括號內寫字串,建構函式時只能構造在元組中出現過的變數名

class Person:
    __slots__ = ('name','age')
    def __init__(self):
        self.name=None
        self.age=None
p=Person()
print(p.name,p.age)

如果不限制新增屬性,在下邊用物件.一個沒有的屬性,比如p.sex='男'在下邊列印是可以打印出來的,不過這是Python臨時給你新增的(這也是python容易誤導人的地方),並不是建構函式中擁有了這個屬性,而是類似於臨時賦值的形式,所以只能臨時使用,限制新增屬性就是為了避免這個問題設定的。