背景:
在C++ 或者 C# 语言中,经常会有get, set 方法,实现读取类的属性的方法。在Python语言中,也可以使用
property和setter装饰器,代替使用get, set 方法。
知识介绍
property() 函数的作用是在新式类中返回属性值。
- property 将一个get方法转换为对象的属性。
- property.setter 将一个set方法转换为对象的属性。
示例代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
print(r'get - name')
return self._name
@name.setter
def name(self, name):
print(r'set - name')
self._name = name
if __name__ == '__main__':
single = Person(r'mis li')
single.name = r'frank' # 调用了set 方法
print(r'new name is:{}'.format(single.name)) # 调用了 get 方法
输出的结果
set - name
get - name
new name is:frank