Как добавить документацию с подсказками типов в объявлении метода класса в Pycharm 2018.2? - PullRequest
0 голосов
/ 12 сентября 2018

Допустим, у меня есть метод класса, как показано ниже -

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) -> ()

Но если я добавлю комментарии, как показано ниже (как объяснено здесь ), тогда автозаполнение не будет работать в файле python.

класс BasePreStep: метакласс = 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

1 Ответ

0 голосов
/ 12 сентября 2018

param в строках документации рассматривается как описание, а не как аннотация типа, поэтому ваш второй пример не работает.

У вас есть два варианта:

  1. Добавление описаний и типов в строку документации:

    class Class:
        def method(self, p1, p2):
            """
    
            :param p1: parameter 1
            :type p1: str
            :param p2: parameter 2
            :type p2: str
            """
    
  2. Добавление описаний для строки документации и типов документов в комментарии типа (которая должна идти перед строкой документации, в противном случае Pycharm ее не распознает).

    class Class:
        def method(self, p1, p2):
            # type: (str, str) -> None
            """
    
            :param p1: parameter 1
            :param p2: parameter 2
            """
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...