2013-02-22 11 views
7

Angenommen, ich arbeite mit der 'Anfragen' Python-Bibliothek.Pycharm: Code-Vervollständigung gibt keine Empfehlungen

req = requests.get("http://google.com") 

danach Nun, wenn ich req. geben, ich bin eine Liste aller Methoden erhalten soll ich zugreifen können. Aber aus irgendeinem Grund tue ich das nicht, auch wenn ich manuell ctrl-space drücke.

Wenn ich dies 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?

Antwort

15

Da es sich bei Python um eine dynamisch typisierte Sprache handelt, müssen Sie sicherstellen, dass sie herausfinden kann, um welche Art Dinge es sich handelt, und die Bibliotheken auf Ihrem System korrekt überprüfen. Stellen Sie sicher, dass der Typ des Objekts in Ihrem Code offensichtlich ist.

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

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

Preferences screen of PyCharm

Sie können auch ‚sagen‘ PyCharm von Epydoc oder Sphinx Stil Docstrings mit, die Informationen über Parameter und Rückgabewert Typen enthalten. PyCharm wird diese verwenden, um seine Inspektionen zu verbessern.

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.

Verwandte Themen