Python 可以从父类调用子类的函数吗?

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

现在我想将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 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