При использовании pydev можно ли аннотировать параметры с помощью typename, чтобы предоставить мне контекстную информацию? - PullRequest
4 голосов
/ 26 января 2012

Я недавно начал использовать pydev.Кажется, отлично.Однако раздражает тот факт, что python является динамическим языком.Многие функции автозаполнения будут работать, когда pydev знает тип, поэтому

  f = open("foo.txt")

прекрасно работает, pydev может выяснить, что f - это файл, и дает мне отличные предложения.

Однако, когдаИмея дело с параметрами в моих собственных функциях, pydev, очевидно, не может определить информацию о типе:

  def bar(x,y): #Pydev obv. cant tell exactly what x and y are

Так что я, очевидно, не получаю никаких предложений, когда делаю x..

было бы здорово предоставить какую-то аннотацию, которую pydev может подобрать, чтобы добавить предложения, а также чтобы помочь мне сделать код немного безопаснее, предупредив меня, что я должен.Я знаю, что я думаю, как кто-то из статичных языков, но в большинстве случаев тип аргумента всегда должен быть одним и только одним.Могу ли я аннотировать свой код, чтобы помочь Pydev?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Если x - список, тогда это должно работать:

def bar(x,y):
   assert isinstance(x, list)
1 голос
/ 23 июня 2014

Вы можете использовать:

def bar(x, y):
    """This function does something.

        @type x: str
            Describe param x
        @type y: int
            Or don't describe. But not in same line.

        @rtype int
            Function returns int
     """
     pass
...