Engañar a la finalización de código con PyDev al igual que con la terapia fotodinámica?

StackOverflow https://stackoverflow.com/questions/2016269

  •  19-09-2019
  •  | 
  •  

Pregunta

¿Hay una manera de ayudar a la finalización de código PyDev diciendo que el tipo de una variable?

Con PDT, puede utilizar la sintaxis PHPDoc similar a tal efecto:

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

Sin embargo, hasta ahora, no puedo encontrar la manera de hacer lo mismo en pitón.

¿Fue útil?

Solución

Nope (ver la docs). Parece que hace PyDev terminación de palabras clave importados de cosas y de lenguaje.

No parece que esto vendría una gran cantidad embargo. La variable en cuestión parece que sólo sería desconocida para pydev si se pasa como un argumento de función sin value.And por defecto, si usted tiene una función que opera en su propia clase, parece que eso debería ser un miembro de la clase ( por lo autocompletar ya funcionaría).

Otros consejos

El truco afirman no parece funcionar para mí con PyDev 2.2.2; todavía se supone que es?

Sin embargo, otro truco que intentaron y que el trabajo es la siguiente:

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

En todos los casos, se ve bastante hacky, y me gustaría una forma más limpia de hacer las cosas (documentación, anotación, lo que sea)

En realidad, se puede hacer si un isinstance assert ()

por ejemplo:.

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

Tenga en cuenta que hace PyDev analizar el retorno de las funciones, así, es posible que se sabe que en varios casos.

Además, que no debería haber penalizaciones de tiempo de ejecución si se utiliza pitón -O (que eliminará el afirma)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top