pycharm найти, где вызывается функция Python

есть ли способ для PyCharm показать, откуда вызывается данная функция Python?

в настоящее время я полагаюсь на простой поиск имени функции по всему проекту, и это часто работает нормально, но если имя функции расплывчато, есть много неправильных хитов. Мне интересно, отсутствует ли у меня где-то функция, например, возможно, Результаты поиска могут быть еще более сужены, чтобы показать, где модули импортируют модуль, из которого я ищу?

2 ответов


в PyCharm вы можете выбрать функцию и нажать Alt+Shift+F7 для запуска поиска использования. Он также доступен в разделе "Edit → Find → Find Usages". Похоже, это умнее, чем текстовый поиск.

использование статического анализа для поиска, откуда вызывается функция, вообще сложно в Python, потому что он использует динамическую привязку и имеет много самоанализа, поэтому очень легко получить ложные срабатывания. В случае функции уровня модуля я думаю, что хорошее решение-всегда использовать module.function чтобы вызвать функцию и никогда не делать from module import function. Таким образом, вы можете выполнить текстовый поиск модуля.функция". Руководства по стилю Python обычно рекомендуют импортировать функции и т. д. таким образом, я думаю, что это вообще общепринятая практика.

Поиск вызовов методов, конечно, намного сложнее. Одна из вещей, которые мне нравятся в разработке на Java и C#, - это возможность найти все использования метода статическим анализ.


нажмите клавишу Ctrl и одновременно наведите курсор мышки на заголовок функции.Имя функции должно быть выделено.Щелкните по имени функции, чтобы получить список всех экземпляров, в которых вызывается функция.

Если вы нажмете клавишу Ctrl и одновременно наведете курсор мыши на вызов функции, то имя функции будет выделено, и нажатие на него приведет вас к определению функции.