Python基础语法:访问器@property和修改器@xxx.setter
一、简介
访问器和修改器也是装饰器的一种。
@property: 访问器,getter
@xxx.setter: 修改器,setter
访问器和修改器的根本目的是想将属性私有化,提供getter&setter去访问。
访问器和修改器能够做到访问属性其实在调用getter方法,设置属性其实在调用setter方法。
Java的规范都是不直接操作属性,而是调用getter和setter方法。
Python做到了直接操作属性来间接调用getter&setter。
二、示例
classPerson:def__init__(self,name,age):self._name=name self._age=age@propertydefname(self):print('@property name')returnself._name@name.setterdefname(self,name):print('@name.setter')self._name=name@propertydefage(self):print('@property age')returnself._age@age.setterdefage(self,age):print('@age.setter')self._age=agedefshow(self):print(f'{self._name}{self._age}')if__name__=='__main__':person=Person('张三',30)# @property name# 张三print(person.name)# @property age# 30print(person.age)# 张三 30person.show()# @name.setterperson.name='张三丰'# @age.setterperson.age=35# 张三丰 35person.show()