如何在Pycharm 2018.2中的类方法声明中添加类型提示的文档?

问题描述 投票:1回答:1

假设我有类似下面的类方法 -

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中添加注释和类型提示的推荐方法是什么?

  • Python 2.7
  • Pycharm 2018.2
python python-2.7 pycharm
1个回答
1
投票

docstrings中的param被视为描述,而不是类型注释,这就是为什么你的第二个例子不起作用的原因。

你有两个选择:

  1. 向docstring添加描述和类型: class Class: def method(self, p1, p2): """ :param p1: parameter 1 :type p1: str :param p2: parameter 2 :type p2: str """
  2. 在类型注释中添加对docstring和文档类型的描述(必须在docstring之前,否则Pycharm将无法识别它)。 class Class: def method(self, p1, p2): # type: (str, str) -> None """ :param p1: parameter 1 :param p2: parameter 2 """
© www.soinside.com 2019 - 2024. All rights reserved.