2012-07-10 21 views
8

Czy istnieje sposób dla PyCharm, aby pokazać, skąd wywoływana jest dana funkcja Pythona?pycharm znajdź gdzie funkcja Pythona jest nazywana

Obecnie polegam na wyszukiwaniu nazwy funkcji w całym projekcie i często działa dobrze, ale jeśli nazwa funkcji jest nieprecyzyjna, jest wiele nieprawidłowych trafień. Zastanawiam się, czy gdzieś brakuje jakiegoś elementu, np. może wyniki wyszukiwania można zawęzić, by pokazać tylko, gdzie moduły importują moduł, którego szukam?

Odpowiedz

10

W pycharm można wybrać funkcję i naciśnij Alt + SHIFT + F7 aby uruchomić wyszukiwanie użytkowania. Jest również dostępny w "Edycja → Znajdź → Znajdź obciążenia". Wygląda na to, że jest bardziej inteligentny niż wyszukiwanie tekstowe.

Posługiwanie się analizą statyczną w celu znalezienia miejsca wywołania funkcji jest w ogóle trudne w Pythonie, ponieważ wykorzystuje dynamiczne wiązanie i ma wiele introspekcji, więc bardzo łatwo uzyskać fałszywe alarmy. W przypadku funkcji na poziomie modułu, myślę, że dobrym rozwiązaniem jest zawsze używać module.function do wywoływania funkcji i nigdy nie wykonywać from module import function. W ten sposób możesz wyszukać tekst "module.function". Przewodniki w stylu Pythona zazwyczaj zalecają importowanie funkcji itp. W ten sposób, więc uważam, że jest to ogólnie przyjęta dobra praktyka.

Wyszukiwanie metod jest oczywiście znacznie trudniejsze. Jedną z rzeczy, które lubię w rozwijaniu w Javie i C#, jest możliwość znalezienia wszystkich zastosowań metody za pomocą analizy statycznej.

+0

To wygląda dokładnie na funkcję, której szukałem, dziękuję. Często używam 'import as' do łatwiejszego zarządzania przestrzeniami nazw, ale wadą jest to, że wyszukiwanie staje się jeszcze trudniejsze. –

+1

W kolejnych wersjach PyCharm powiązanie "Find Usages" zmieniło się na ''. Z jakiegoś powodu, ale głównie dlatego, że. W przeciwnym razie ten element menu znajduje się teraz w "Edit → Find → Find Usages". Dlaczego operacje "znajdź" tylko do odczytu znajdowałyby się pod najwyższymi poziomami menu "Edycja", a nie "Widok" lub "Nawiguj" to najgorsze przypuszczenia. (_ Mam nutry ._) –

2

Naciśnij klawisz Ctrl i jednocześnie najedź myszą na nagłówek funkcji. Nazwa funkcji powinna zostać podświetlona. Kliknij nazwę funkcji, aby wyświetlić listę wszystkich instancji wywoływanych funkcji.

Jeśli naciśniesz klawisz Ctrl i jednocześnie najedziesz myszą na wywołanie funkcji, wtedy nazwa funkcji zostanie podświetlona, ​​a kliknięcie spowoduje przejście do definicji funkcji.

Powiązane problemy