Python docstring类型注释 - 一个类,而不是一个实例?

Mat*_*att 8 python pycharm

比方说我有:

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)您提供的参数是一个返回给定类型对象的函数。它将在对象创建后正确键入提示任何内容。