Вызов методов непосредственно из списка, заполненного objectsA из objectB в Python 3.7 - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь вызвать методы из списка, который заполнен объектами из другого класса, где список определен.

Рассмотрим следующее:

class ObjectA(object):
    def __init__(self, object_id):
        self.id = object_id
    def a_function(self):
        return self.id

from ObjectA import ObjectA
class ObjectB:
    def test():
        object_1 = ObjectA(1) # passing the id
        a_list = [ObjectA] # setting the list to be of type ObjectA (?)
        a_list.append(object_1)
        a_list[0].a_function() # Says I need to pass argument 'self'

Как-то такэто было бы возможно?Я знаю, что мог бы вместо этого сделать a_list [0] .id, и это работает, но это не так.Я предпочитаю иметь сеттеры / геттеры.

Редактировать: я также знаю, что если я объявляю список как этот a_list = [] вместо a_list = [ObjectA], он также работает, но в этом случае я неиметь доступ к методам автозаполнения.

1 Ответ

0 голосов
/ 04 декабря 2018

В Python вы не можете указать тип списка.Так что строка a_list = [ObjectA] не имеет смысла.(Фактически он создает список, содержащий класс ObjectA, а не объект, следовательно, ошибка self.)

Замените a_list = [ObjectA] на a_list = [], чтобы создать пустой список

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