介绍@property装饰器前,我们先看个详细的示例(注意:下方的name和age定义的是私有变量)
class Person(object):
def __init__(self, name, age):
self.__name = name
self.__age = age
def get_age_fun(self):
return self.__age
def set_age_fun(self, value):
if not isinstance(value, int):
raise ValueError("年龄必须是数字!")
if value < 0 or value > 100:
raise ValueError("年龄必须是0-100")
self.__age = value
def print_info(self):
print("%s:%s" % (self.__name, self.__age))
p = Person("balala", 20)
p.__age = 17
print(p.__age)
print(p.get_age_fun())
p.set_age_fun(35)
print(p.get_age_fun