Question

Y at-il un moyen d'aider le code PyDev fin en lui disant le type d'une variable?

Avec PDT, vous pouvez utiliser la syntaxe comme PHPDoc à cette fin:

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

Mais jusqu'à présent, je ne peux pas comprendre comment faire la même chose en python.

Était-ce utile?

La solution

Non (voir docs ). Il ressemble à la fin de PyDev ne mots-clés choses et langue importés.

Il ne semble pas que cela viendrait beaucoup cependant. La variable en question semble que ce ne serait inconnu pydev si elle était adoptée en tant qu'argument de fonction sans défaut value.And, si vous avez une fonction d'exploitation de votre propre classe, il semble que cela devrait être un membre de la classe ( si autocomplete serait déjà travailler).

Autres conseils

L'astuce assert ne semble pas fonctionner pour moi avec PyDev 2.2.2; il est encore censé?

Cependant une autre astuce j'ai essayé et que le travail est le suivant:

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

Dans tous les cas, il semble assez hacky, et j'aimerais une manière plus propre à faire des choses (documentation, annotation, peu importe)

En fait, vous pouvez si vous faire une isinstance assert ()

par exemple:.

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

Notez que Pydev fait analyser le retour des fonctions, donc, il est possible qu'il sait que sur un certain nombre de cas.

En outre, cela ne devrait pas avoir des pénalités d'exécution si vous utilisez python -O (qui supprimera l'affirme)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top