2013-02-22 11 views
7

Powiedz, że pracuję z biblioteką python 'requests'.Pycharm: Zakończenie kodu nie zawiera zaleceń

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

Teraz po tym, gdy wpisuję req., mam dostać listę wszystkich metod mogę dostęp. Ale z jakiegoś powodu nie, nawet jeśli ręcznie naciśnij ctrl-spacja.

Jeśli spróbuję tego w ipythonie, otrzymam zalecenia autouzupełniania. Nawet jeśli spróbuję go za pomocą wbudowanej konsoli pythona w pycharmie, otrzymam rekomendacje.

Dlaczego to się dzieje?

Odpowiedz

15

Ponieważ język Python jest językiem dynamicznie wpisywanym, należy upewnić się, że potrafi on określić rodzaj rzeczy i poprawnie przeglądać biblioteki w systemie. Postaraj się upewnić, że jest oczywiste, jaki typ obiektu znajduje się w twoim kodzie.

Jednym z ostatnio dodanych dobrych sposobów (2.7) jest włączenie wykrywania typu uruchomieniowego - PyCharm przechwytuje do twojego programu podczas działania (podczas debugowania) i sprawdza typy zmiennych w miarę ich używania.

Możesz włączyć tę funkcję, przechodząc do preferencji, a następnie wybierając "Python Debugger" i wybierając opcję "Zbieraj informacje o typach wykonawczych dla wglądu w kod".

Preferences screen of PyCharm

Można również „powiedzieć” pycharm za pomocą Epydoc lub stylu Sphinx docstrings, które zawierają informacje na temat typów parametrów i wartości zwracanej. PyCharm użyje ich do ulepszenia inspekcji.

6

Python jest językiem napisanym dynamicznie, co oznacza, że ​​funkcja "get" nie deklaruje typu zwrotu. Kiedy wpisujesz kod w IPython lub w konsoli PyCharm, kod jest faktycznie wykonywany i możliwe jest sprawdzenie instancji obiektu w uruchomionym interprerze i uzyskanie listy jego metod. Kiedy wpisujesz kod w PyCharm lub jakimkolwiek innym IDE Pythona, nie jest on wykonywany i można tylko użyć analizy statycznej do określenia typu zwracanej metody. We wszystkich przypadkach nie jest to możliwe.

Powiązane problemy