python 给类实例设置一个属性,使用python魔方方法实现
时间: 2024-01-27 08:03:39 浏览: 87
在Python中,可以使用魔法方法(Magic Method)来设置类实例的属性。我们可以使用__setattr__()方法来实现。示例代码如下:
```python
class Person:
def __init__(self, name):
self.name = name
# 重写__setattr__()方法
def __setattr__(self, key, value):
# 如果属性名为age,则打印提示信息
if key == "age":
print("Don't tell anyone the age!")
# 否则直接设置属性
else:
self.__dict__[key] = value
# 创建类实例
person = Person("Alice")
# 给类实例设置属性age
person.age = 20
# 打印属性值
print(person.name)
print(person.age)
```
在上面的示例中,我们首先创建了一个Person类,该类有一个属性name。然后我们重写了__setattr__()方法,如果属性名为age,则打印提示信息;否则直接设置属性。最后我们创建了一个类实例person,并通过person.age = 20的方式为其添加了一个属性age。最后打印出了person的name和age属性的值。
需要注意的是,使用__setattr__()方法设置属性时,需要使用self.__dict__[key] = value的方式进行设置。如果直接使用self.key = value的方式,则会导致死循环。因为在设置属性时,Python会自动调用__setattr__()方法,而如果在__setattr__()方法中再次使用self.key = value的方式进行设置,则会再次调用__setattr__()方法,导致死循环。
阅读全文