Python定义属性函数
时间: 2024-09-20 11:13:12 浏览: 42
python基于property()函数定义属性
Python中的属性函数,也称为getter和setter方法,用于提供访问和修改类实例变量的方式。当你需要控制对私有变量(通常以`_`开头)的直接访问,或者想要计算属性值后再返回,或者在设置属性值时执行一些额外操作时,就可以使用属性。
- **Getter**(获取器)函数是一个没有参数也没有返回值的特殊方法,例如`__get__(self, instance, owner)`,它会在尝试读取实例的属性时被调用。例如:
```python
class MyClass:
def __init__(self):
self._private_var = 0
@property
def private_var(self):
return self._private_var
```
在这个例子中,`private_var`就是一个getter方法,你可以像访问普通变量一样使用它,但实际上是在读取`_private_var`。
- **Setter**(设值器)函数是一个接受两个参数的方法,如`__set__(self, value, instance)`,当试图给属性赋值时会被调用。例如:
```python
class MyClass:
def __init__(self):
self._private_var = 0
@private_var.setter
def private_var(self, value):
if not isinstance(value, int):
raise ValueError("Value must be an integer")
self._private_var = value
```
这里,`private_var = value`实际上是调用了`self.private_var.setter(value)`。
阅读全文