在基类中,我正在使用property()
函数创建属性:
from abc import ABCMeta, abstractmethod
class Person(metaclass=ABCMeta):
@abstractmethod
def __init__(self, name, telephone):
self.name = name
self.telephone = telephone
def get_name(self) -> str:
return self.__name
def set_name(self, value: str):
self.__name = value
name = property(fget=get_name, fset=set_name)
在派生类中,我需要重写set_name
方法,即Person.name.fset
应指向该方法的修改版本。我试过了,但是没用:
class Employee(Person):
def __init__(self, name, telephone, email):
super().__init__(name, telephone)
self.email = email
def set_name(self, value):
super().set_name('override')
Person.name.fset = set_name
有什么方法可以覆盖python中的属性吗?