Как перейти к определениям базового класса в другом файле в PyCharm? - PullRequest
0 голосов
/ 26 августа 2018

У меня есть проект в редакторе PyCharm, в котором базовый класс и дочерний класс реализованы в отдельных файлах.В дочернем классе я обращаюсь к функции, которая реализована в базовом классе.

У Pycharm есть сочетание клавиш "Ctrl + Alt + B", чтобы перейти к реализации метода, который выделяется при нажатиинажата.Однако я не могу перейти к какой-либо реализации, которая находится в другом файле.Я могу использовать только методы, реализованные в одном файле.Я также попробовал другие варианты, в том числе переход к методу super или переход к объявлению, просто чтобы посмотреть, работает ли какая-либо другая команда для перехода в другой файл, но ни одна из них не кажется эффективной.

Есть ли что-нибудь еще, чтоЯ должен сделать, чтобы сделать это возможным, кроме включения файлов в том же проекте в PyCharm?Например, есть ли какой-нибудь вид индексации, который мне нужно сделать раньше, чтобы PyCharm мог распознавать реализацию по разным файлам?

Вот еще подробности после комментария от Дэна: Структура проекта проста:

Каталог проекта

  • Dir1
  • Dir2

Внутри Dir1

  • File1
  • File2

Withi Dir2

  • File3
  • File4

Для целей данного вопроса File1 может рассматриватьсякак базовый класс и file3 как дочерний класс.Когда я нахожусь в File3 в pycharm и они находятся в месте, где вызывается функция, реализованная в file1, я не могу перейти к этой функции в File1.

Фактически, даже если нет отношения наследования классовЯ не могу перейти к какой-либо функции, которая реализована в файле, отличном от текущего файла, где находится курсор.Например, если я вызываю функцию в File3, а функция находится в том же каталоге в File4, я не могу перейти к этой функции.

Это довольно удивительно, потому что основной другойВ конце IDE, возможно, есть какая-то проблема в моих настройках, но я не могу понять, что делать.Надеюсь, с этой информацией, кто-то может, по крайней мере, указать мне направление дальнейшего расследования.Я использую Pycharm Community Edition

1 Ответ

0 голосов
/ 04 сентября 2018

После нескольких дней поиска я наконец-то смог найти ответ на головоломку. Когда я импортировал модуль базового класса, я импортировал его так:

sys.path.insert(0, r"<relative path to base class>")
import base_class

Похоже, Пичарм этого не понимает. Когда я изменил это на

import dir1.file1

в dir2 / file2 (который является дочерним классом) Пешарм способен перемещаться в базовый класс. Надеюсь, это кому-нибудь поможет. Мне потребовалось буквально три недели, чтобы понять. Но я не очень умный человек, остальные могут понять это с помощью этого ответа или сами по себе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...