class Pet:
"""宠物类型:限制该类型只能出现哪些属性"""
# 限制该类型对象只能拥有下面列表中出现的属性
__slots__ = ['__name', '__age', '__gender', 'color']
def __init__(self, name, age, gender):
self.__name = name
self.__age = age
self.__gender = gender
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
def set_age(self, age):
self.__age = age
def get_age(self):
return self.__age
def set_gender(self, gender):
self.__gender = gender
def get_gender(self):
return self.__gender
p = Pet("Tom", 18, "Man")
print(p.get_name(), p.get_age(), p.get_gender())
p.color = "red"
print(p.color)
p.email = "tom@qq.com"
print(p.email)
限制某类型对象只能拥有__slots__列表中出现的属性,未定义的属性不能使用 。
输出:
Tom 18 Man
red
File "E:/PYTHON1901/day01_02_21/test.py", line 52, in <module>
p.email = "tom@qq.com"
AttributeError: 'Pet' object has no attribute 'email'