【发布时间】:2020-07-24 09:12:48
【问题描述】:
我有一种情况,我想返回一个非实例化的类对象,一个类型。我会选择->type,因为非实例化类的类型是“类型”,但该函数不应该返回“任何类类型”,我只对返回从 A 继承的类类型之一感兴趣,因为在这个类的实例化对象上,我稍后会运行一些特定于它的方法。
为了更好地说明这一点,这里有一个示例代码。问题是在这种情况下可以放置一些合理的类型注释吗?或者如果不是,在这种情况下正确的做法是什么?
class A():
def run(self):
pass
class B(A):
pass
class C(A):
pass
def get_letter_class(condition: str) -> ?:
if condition == 'b':
return B
elif condition == 'c':
return C
class_type = get_letter_class('b')
letter = class_type()
letter.run()
【问题讨论】:
标签: python python-3.x oop inheritance type-hinting