假设我有类似下面的类方法 -
class BasePreStep:
def __init__(self, threadpool, release_manifest, service_manifest, upgrade_bundle, system_config):
如果我添加类型提示如下,那么自动完成在python文件中正常工作
class BasePreStep:
__metaclass__ = ABCMeta
def __init__(self, threadpool, release_manifest, service_manifest, upgrade_bundle, system_config):
# type: (self, ThreadPool, service_version_pb2.ReleaseManifest, service_version_pb2.ServiceManifest, str, SystemConfig) -> ()
但是如果我添加如下的注释(如here所解释的那样)那么自动完成在python文件中不起作用。
class BasePreStep:metaclass = ABCMeta
def __init__(self, threadpool, release_manifest, service_manifest, upgrade_bundle, system_config):
"""
:param threadpool: Threadpool
:param release_manifest: service_version_pb2.ReleaseManifest
:param service_manifest: service_version_pb2.ServiceManifest
:param upgrade_bundle: str
:param system_config: SystemConfig
"""
有人能告诉我在Pycharm中添加注释和类型提示的推荐方法是什么?
docstrings中的param
被视为描述,而不是类型注释,这就是为什么你的第二个例子不起作用的原因。
你有两个选择:
class Class:
def method(self, p1, p2):
"""
:param p1: parameter 1
:type p1: str
:param p2: parameter 2
:type p2: str
"""
class Class:
def method(self, p1, p2):
# type: (str, str) -> None
"""
:param p1: parameter 1
:param p2: parameter 2
"""