Pycharm: Codevervollständigung gibt keine Empfehlungen

7

Angenommen, ich arbeite mit der Python-Bibliothek 'requests'.

%Vor%

Wenn ich danach req. eintippe, sollte ich eine Liste aller Methoden bekommen, auf die ich zugreifen kann. Aber aus irgendeinem Grund tue ich das nicht, auch wenn ich manuell ctrl-space drücke.

Wenn ich das in ipython versuche, bekomme ich Empfehlungen zur automatischen Vervollständigung. Auch wenn ich es über die eingebaute Python-Konsole in pycharm versuche, bekomme ich Empfehlungen.

Warum passiert das?

    
user1265125 22.02.2013, 11:10
quelle

2 Antworten

16

Da es sich bei Python um eine dynamisch typisierte Sprache handelt, müssen Sie sicherstellen, dass sie herausfinden kann, um welche Art von Dingen es sich handelt, und die Bibliotheken auf Ihrem System korrekt untersuchen. Stellen Sie sicher, dass es offensichtlich ist, welchen Typ das Objekt in Ihrem Code hat.

Ein kürzlich hinzugefügter Weg (2.7) besteht darin, die Erkennung von Laufzeittypen zu aktivieren - PyCharm greift während der Ausführung (während der Fehlersuche) in Ihr Programm ein und prüft die verwendeten Variablenarten.

Sie können dies aktivieren, indem Sie zu den Voreinstellungen gehen, dann "Python Debugger" auswählen und "Laufzeit-Typen-Informationen für Code-Einblick sammeln" auswählen.

Sie können PyCharm auch über Epdoc- oder Sphinx-Stil-Docstrings, die Informationen zu Parameter- und Rückgabewerttypen enthalten, "erkennen". PyCharm wird diese verwenden, um seine Inspektionen zu verbessern.

    
Gareth Latty 22.02.2013 11:16
quelle
6

Python ist eine dynamisch typisierte Sprache, was bedeutet, dass die Funktion "get" den Rückgabetyp nicht deklariert. Wenn Sie Code in IPython oder in der PyCharm-Konsole eingeben, wird der Code tatsächlich ausgeführt, und Sie können die Objektinstanz im ausgeführten Interpreter überprüfen und die Liste ihrer Methoden abrufen. Wenn Sie Code in PyCharm oder in einer anderen Python-IDE eingeben, wird er nicht ausgeführt, und es ist nur möglich, den Rückgabetyp der Methode mithilfe der statischen Analyse zu ermitteln. Dies ist nicht in allen Fällen möglich.

    
yole 22.02.2013 11:18
quelle

Tags und Links