我想允许使用Python 3的类型提示来接受某个类的子类.例如:
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
Run Code Online (Sandbox Code Playgroud)
现在输入以下代码时:
process_any_subclass_type_of_A(B)
Run Code Online (Sandbox Code Playgroud)
我得到一个PyCharm IDE提示'预期类型A,而不是类型[B].
如何在此处更改类型提示以接受A的任何子类型?
根据这个(https://www.python.org/dev/peps/pep-0484/#type-definition-syntax,"该参数也接受其类型是特定参数类型的子类型的表达式.") ,我明白我的解决方案(cls: A)应该有效吗?