super().__setattr__(name, value)什么意思
时间: 2023-05-25 10:06:48 浏览: 356
super().__setattr__(name, value)是一个Python中的魔法方法,用于在子类中重写父类的属性设置方法,并在子类方法中使用父类的属性设置方法。
其中,name是属性的名称,value是要设置的属性值。super()用于调用父类中的同名方法,并将name和value作为参数传递给父类方法。
例如:
```
class Person:
def __init__(self, name):
self.__name = name
def __setattr__(self, name, value):
if name == "_Person__name":
self.__dict__[name] = value.upper()
else:
self.__dict__[name] = value
class Employee(Person):
def __setattr__(self, name, value):
super().__setattr__(name, value)
e = Employee("John")
e.name = "Doe"
print(e.name) # "DOE"
```
在上面的示例中,Person类中重写了属性设置方法__setattr__(),用于将属性名为"name"的属性值转换为大写。在子类Employee中,我们使用了super()调用父类同名方法__setattr__(),从而实现了在子类中重写父类的设置属性方法。
阅读全文