Python 可以从父类调用子类的函数吗?
现在我想将func()添加到类A中,但是我不能更改类A,所以我创建了A的子类,并将func()添加到子类中。如何从实例调用func() 我尝试用类B初始化,但是,有很多实例,所以我需要更改很多位置。有更好的方法吗?最好是A级Python 可以从父类调用子类的函数吗?,python,Python,现在我想将func()添加到类A中,但是我不能更改类A,所以我创建了A的子类,并将func()添加到子类中。如何从实例调用func() 我尝试用类B初始化,但是,有很多实例,所以我需要更改很多位置。有更好的方法吗?最好是A级 class A(object): def xx(): # do something def yy(): # do something class B(A): def func(): # do som
class A(object):
def xx():
# do something
def yy():
# do something
class B(A):
def func():
# do something
# How to make it possible?
a = A()
a.func()
您可以使用
setattr()
():
印刷品:
class A:
def xx(self):
print('xx')
def yy(self):
print('yy')
class B(A):
def func(self):
print('func')
setattr(A, 'func', B.func) # or setattr(A, B.func.__name__, B.func)
a = A()
a.func()
不能这样做,因为类B继承自类A而不是相反,所以可以使用B.xx(),但不能使用A.func() 有关Python中继承的更多信息,请参见 正如Andrej所说,您可以使用
setattr()
方法为类A定义新属性。
查看有关
setattr()
方法的更多信息。为什么不能更改类?在Python中有很多方法可以更改类。如果你解释了你想要达到的目标以及为什么你认为你不能改变课程,你可能会得到其他答案。或者干脆A.func=B.func
?
class A:
def xx(self):
print('xx')
def yy(self):
print('yy')
class B(A):
def func(self):
print('func')
setattr(A, 'func', B.func) # or setattr(A, B.func.__name__, B.func)
a = A()
a.func()
func