【发布时间】:2013-07-19 00:02:50
【问题描述】:
我想将 A 类型的对象转换为 B 类型,这样我就可以使用 B 的方法。 B类继承A。例如我有类我的类B:
class B(A):
def hello(self):
print('Hello, I am an object of type B')
我的库 Foo 有一个返回 A 类型对象的函数,我想将其转换为 B 类型。
>>>import Foo
>>>a_thing = Foo.getAThing()
>>>type(a_thing)
A
>>># Somehow cast a_thing to type B
>>>a_thing.hello()
Hello, I am an object of type B
【问题讨论】:
-
据我所知,这在 Python 中不存在。您应该编写一个函数,该函数接受 A 类型的对象,并返回 B 类型的对象,例如,将 A 类型对象的属性复制到新的 B 类型对象。
-
我看到了this question 的答案,但我希望有更多 Pythonic 的东西。
-
你有这方面的实际用例吗?您的代码的 getAThing 正在返回 A 类的对象,您认为它如何转换为 B 类。
-
我认为在 Java 中它看起来像这样:B a_thing = (B) Foo.getAThing();