Python 如何从基类对象上具有继承性的类调用方法?

Python 如何从基类对象上具有继承性的类调用方法?,python,python-2.7,Python,Python 2.7,我有两节课。一方继承另一方: class A(object): def __init__(self): self.attribute = 1 class B(A): def get_attribute(self): return self.attribute 我希望能够在类型A的对象上从B调用方法。我无法编辑类A(它是一个内置类)。当我尝试从B调用方法时,有一个AttributeError a = A() a.get_attribute()

我有两节课。一方继承另一方:

class A(object):
    def __init__(self):
        self.attribute = 1

class B(A):
    def get_attribute(self):
        return self.attribute

我希望能够在类型A的对象上从B调用方法。我无法编辑类A(它是一个内置类)。当我尝试从B调用方法时,有一个AttributeError

a = A()
a.get_attribute()

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    a.get_attribute()
AttributeError: 'A' object has no attribute 'get_attribute'
a=a()
a、 获取_属性()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
a、 获取_属性()
AttributeError:'对象没有属性'get\u attribute'

有没有一种方法可以在不明确声明数据为B类型的情况下从B调用方法?

虽然不鼓励这样做,但您可以使用函数之类的任何方法。在你的情况下是这样的

B.get_attribute(a)

当然,该方法必须与
a

的类型兼容,为什么要这样做
A
,超类不知道,
B
,子类有一些函数这与继承的工作方式正好相反,所以不,你不能这样做。“我希望能够在类型A的对象上从B调用方法。”-这根本没有意义。如果此方法对对象有意义,并且只使用对象支持的功能,您可能希望将其改为普通函数。@AndrewL,A是一个内置类(比如
str
)。每次我想使用该数据类型时,键入类型更改是有点低效的。@cat40但你知道你试图实现一些根本不可能实现的事情,一些毫无意义的事情吗?