Автозаполнение вкладки IPython не работает для иерархической глубины больше 1 - PullRequest
0 голосов
/ 08 июля 2019

Я наблюдаю странное поведение автозаполнения атрибутов объекта в IPython:

x1.<tab>

Работает просто отлично и предлагает элементы в x1.__dir__(), среди которых x2. Однако это не работает (ничего не предлагается):

x1.x2.<tab>

Однако x1.x2.__dir__() возвращает список строк.

Что еще более странно, это то, что это РАБОТАЕТ:

x3 = x1.x2
x3.<tab>

Реализации классов x1 и x1.x2 довольно сложны, тем более что он переопределяет __dir__ и динамически генерирует возвращаемое значение. Кажется, что моя реализация этих классов является проблемой, потому что я не могу воспроизвести проблему на простом примере.

Есть ли в атрибуте автозаполнения больше, чем возвращаемое значение obj.__dir__()? Как я могу отладить то, что Ipython пытается сделать, когда я нажимаю?

...