@property将方法转为属性
时间: 2023-12-10 20:06:15 浏览: 27
@property 是 Python 中的一个装饰器,用于将一个方法转换为属性。通过 @property 装饰器修饰的方法,可以像访问属性一样访问该方法,而不需要使用方法调用的语法。
例如,我们定义一个类 Person,其中有一个方法 get_age() 返回该人的年龄:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def get_age(self):
return self.age
```
使用该方法时,需要通过方法调用的方式获取年龄:
```python
person = Person('Tom', 25)
age = person.get_age() # 调用方法获取年龄
```
如果我们希望可以像访问属性一样访问年龄,可以使用 @property 装饰器将 get_age() 方法转换为属性:
```python
class Person:
def __init__(self, name, age):
self.name = name
self._age = age
@property
def age(self):
return self._age
```
使用该属性时,可以直接访问 age 属性获取年龄:
```python
person = Person('Tom', 25)
age = person.age # 直接访问属性获取年龄
```
注意,我们在 age 属性的方法名上加了前缀下划线,这是为了表示该属性是“私有”的,不应该被直接访问。实际使用中,也可以将该属性名改为和实际属性名一样,不过这样可能会导致命名冲突。