Автозаполнение переданного объекта класса - PullRequest
0 голосов
/ 08 мая 2019

У меня есть два класса, скажем, A и B. B имеет в своем конструкторе A в качестве параметра.Класс А имеет функцию foo.Теперь, когда я набираю «а».Я хочу, чтобы Vs код автозаполнения, чтобы показать предложения "a.foo ()".Это не работает в данный момент.Нужно ли вводить подсказку или что-то подобное?Я пытался импортировать А, но он не работает.

class A:
    def __init__(self):
    def foo(self):
        print("hello")
class B:
    def __init__(self, a):
        a. <-- this should show the members of A but does not

Запуск Mac и Python 2.7 с расширением Microsoft.

Ответы [ 2 ]

2 голосов
/ 08 мая 2019

Python - это язык с динамической типизацией, и ваш редактор не может оценить тип параметра a, переданного в конструктор B до времени выполнения, чтобы показать вам его атрибуты.

Вы можете использовать подсказку типасказать, что вы ожидаете, что объект A будет передан в качестве параметра a в конструктор B:

def __init__(self, a: A):

enter image description here

Без подсказки типа вы можете использовать ctrl(or command)+space для просмотра всех возможных завершений.

enter image description here

0 голосов
/ 08 мая 2019

попробуйте это:

class A:
    def __init__(self):
    def foo(self):
        print("hello")
class B(A):
    def __init__(self):
       super().__init__()

Теперь вы должны быть в состоянии:

classexp = B()
classexp.{some A function}
...