Pergunta

Existe uma maneira de ajudar a conclusão de código PyDev, dizendo que o tipo de uma variável?

Com PDT, você pode usar PHPDoc-como sintaxe para essa finalidade:

/* @var $my_var MyClass */
$my_var = myFunction();
// PDT is able to figure out that $my_var is a MyClass object.

Mas até agora, não posso descobrir como fazer o mesmo em python.

Foi útil?

Solução

Nope (veja o docs ). Parece que PyDev faz conclusão de coisas palavras-chave e linguagem importados.

Ele não parece que isso iria chegar muito embora. A variável em questão parece que ele só seria desconhecido para pydev se fosse passado como um argumento da função sem padrão value.And, se você tem uma operacional de função em sua própria classe, parece que deve ser um membro da classe ( tão autocomplete teria já trabalho).

Outras dicas

O truque assert não parece trabalhar para mim com PyDev 2.2.2; ele ainda é suposto?

No entanto um outro truque que eu tentei e que o trabalho é o seguinte:

class Foo(object):
    def __init__(self, bar):
       self.bar = bar
       # Tricking PyDev
       if (not self.bar):
          self.bar = Bar()
          raise Exception("Bar should not be null")

Em todos os casos, parece muito hacky, e eu adoraria uma maneira mais limpa de fazer as coisas (documentação, anotação, qualquer que seja)

Na verdade, você pode, se você fizer uma isinstance assert ()

por exemplo:.

a = function()
assert isinstance(a, MyClass)
a. <- would get the proper completions

Note que Pydev faz analisar o retorno das funções, por isso, é possível que ele sabe que em um número de casos.

Além disso, que não deve ter penalidades de tempo de execução se você usar python -O (que irá remover o afirma)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top