之前学python的时候对只讲了用@property修饰方法可以像访问属性一样来访问方法, 也没有给例子
一般的类设定和访问属性要有对应的setter和getter
设定用set_name, 访问用get_name
class AA():
def __init__(self, name=''):
self.__name = name
def get_name(self):
return self.__name
def set_name(self, name):
self.__name = name
a = AA()
print(a.get_name())
a.set_name('binn') #设定用set_name
print(a.get_name()) #访问用get_name
如果用@property就要这样写, @property修饰getter方法aaa(此例中为name), @name.setter修饰setter, 如果没有@name.setter修饰的setter方法就是一个只读属性
class AAA():
def __init__(self, name='', age=0):
self.__name = name
self.__age = age
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
@property
def age(self): #只读属性__age
return self.age
a =AAA()
a.name = 'new' #设定,会自动调用设定方法
print(a.name) #访问,会自动调用访问的方法