当我们创建类时,可以直接给类添加属性,并赋值,比如下例中的age
class Student(object):
pass
student = Student()
student.age = 10
print(student.age)
如果想对age
做限制时,就需要创建get
和set
方法。
class Student(object):
def get_age(self):
return self.age
def set_age(self,num):
if num>100:
print("wrong age")
else:
self.age = num
student = Student()
student.set_age(10)
但是写get
和set
方法显然不够方便,这个时候就可以使用@property
class Student(object):
@property
def age():
return self._age
@age.setter
def age(self,num):
if num>100:
print("wrong age")
else:
self.age = num
student = Student()
student.age = 1000
平时,我们可能使用不上age.setter
,所以@property
更像是调用方法的简便方法。
参考:
https://www.liaoxuefeng.com/wiki/1016959663602400/1017502538658208