Trick Code-Vervollständigung mit PyDev wie mit PDT?
-
19-09-2019 - |
Frage
Gibt es eine Möglichkeit PyDev Code-Vervollständigung zu helfen, indem sie den Typ einer Variablen zu sagen?
Mit PDT können Sie PHPDoc-ähnliche Syntax für diesen Zweck verwendet werden:
/* @var $my_var MyClass */
$my_var = myFunction();
// PDT is able to figure out that $my_var is a MyClass object.
Aber bis jetzt, ich kann nicht herausfinden, wie das gleiche zu tun in Python.
Lösung
Nein (siehe docs ). Es sieht aus wie PyDev Abschluss der importierten Sachen und Schlüsselwörter von der Fall ist.
Es scheint nicht, wie dies obwohl viele kommen würde. Die Variable in Frage scheint, wie es nur unbekannt pydev wäre, wenn es keinen Standardwert value.And als Funktion Argument übergeben wurde, wenn Sie eine Funktion für den Betrieb auf eigene Klasse haben, wie es scheint, dass ein Klassenmitglied sein sollte ( so funktioniert die automatische Vervollständigung würde bereits).
Andere Tipps
Die Assertion Trick scheint nicht mit PyDev 2.2.2 für mich zu arbeiten; es ist nach wie vor soll?
Doch ein weiterer Trick, den ich versuchte, und dass die Arbeit ist die folgende:
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")
In allen Fällen sieht es ziemlich hacky, und ich würde eine sauberere Art und Weise liebt es, Dinge zu tun (Dokumentation, Kommentierung, was auch immer)
Eigentlich können Sie, wenn Sie tun, um eine Assertion isinstance ()
Z. B:.
a = function()
assert isinstance(a, MyClass)
a. <- would get the proper completions
Beachten Sie, dass Pydev die Rückkehr der Funktionen tut analysieren, so es möglich ist, dass es, dass auf einer Reihe von Fällen kennt.
Auch die nicht-Laufzeitstrafen haben sollte, wenn Sie Python verwenden -O (das ist der behauptet wird entfernen)