最佳答案
我希望允许使用 Python3的类型提示接受某个类的子类。例如:
class A:
pass
class B(A):
pass
class C(A):
pass
def process_any_subclass_type_of_A(cls: A):
if cls == B:
# do something
elif cls == C:
# do something else
现在输入以下代码:
process_any_subclass_type_of_A(B)
我得到一个 PyCharm IDE 提示“预期类型 A,得到类型[ B ]代替。”
如何在这里更改类型提示以接受 A 的任何子类型?
根据 PEP 484(“其类型是特定参数类型的子类型的表达式也被接受用于该参数。”),我明白我的解决方案 (cls: A)
应该工作?