python中 @property 的作用是什么?
时间: 2024-03-20 21:42:50 浏览: 81
`@property` 是 Python 中的一个装饰器,用于将一个方法转换成一个属性。它的作用是让方法像属性一样被访问,从而在访问该属性时可以执行一些特定的代码。通常情况下,`@property` 用于将一个方法封装成一个只读属性,这样在访问该属性时,方法会被自动调用。
例如,我们可以将一个类的实例变量封装成一个只读属性,如下所示:
```python
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
@property
def name(self):
return self._name
@property
def age(self):
return self._age
```
在上面的示例中,`@property` 装饰器将 `name()` 和 `age()` 方法转换成只读属性,这样就可以通过对象的属性来访问这些方法的返回值了。例如:
```python
p = Person("张三", 18)
print(p.name) # 输出 "张三"
print(p.age) # 输出 18
```
相关问题
python中@property是什么用法
`@property` 是 Python 中的一种装饰器,它可以将类方法转换为只读属性。在 Python 中,属性通常可以通过访问器方法(getter 和 setter 方法)来进行读取、赋值和删除。使用 `@property` 装饰器可以将一个方法转换为只读属性,即只允许读取,不允许赋值和删除。
例如,假设我们有一个 `Person` 类,其中包含一个 `name` 属性和一个 `get_name` 方法:
```python
class Person:
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
```
如果我们想要将 `get_name` 方法转换为只读属性,可以使用 `@property` 装饰器:
```python
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
```
在这个例子中,我们使用 `@property` 装饰器将 `get_name` 方法转换为只读属性 `name`。这样,我们可以通过 `person.name` 来获取 `name` 属性的值,而不需要调用 `get_name` 方法。同时,由于 `name` 是只读属性,我们也无法通过 `person.name = "new name"` 来修改 `name` 属性的值。
python中@property的作用
@property在Python中的作用是将一个方法转换为属性,使得该属性可以像普通属性一样被访问,而不需要调用方法。@property装饰器可以将一个方法转换为只读属性,同时还可以使用@property.setter装饰器将其转换为可读写属性。这样可以提高代码的可读性和可维护性,同时还可以对属性进行更加灵活的控制和管理。
阅读全文