比方说我有:
class A(object):
pass
class B(A):
pass
Run Code Online (Sandbox Code Playgroud)
我想声明一个以A的子类为参数的函数:
def do_something(klass):
"""
:type klass: WHAT_HERE
"""
pass
Run Code Online (Sandbox Code Playgroud)
我应该把什么放在什么地方?如果我这样做:
:type klass: A
Run Code Online (Sandbox Code Playgroud)
PyCharm认为我应该将A的实例作为参数,而不是类本身.
小智 4
根据pycharm 文档,您能得到的最接近的是:
() -> SomeClass
Run Code Online (Sandbox Code Playgroud)
所以在你的例子中
def do_something(klass):
"""
:type klass: () -> A
"""
pass
Run Code Online (Sandbox Code Playgroud)
这意味着(对于 PyCharm)您提供的参数是一个返回给定类型对象的函数。它将在对象创建后正确键入提示任何内容。