typeerror: объект 'module' не имеет атрибута '__getitem__', не & ldquo; MyClass & rdquo; объект [дубликат]

Сравнение MSDN с этим

WCF и ASP.NET Web API

Для меня выбор был о том, кто из клиентов , и где они расположены?

Внутри компании Network и .NET-клиенты: используйте WCF с привязкой TCP (Fast communication than HTTP)

Вне сети компании и используйте разнообразные такие технологии, как PHP, Python и т. д.: используйте веб-API с REST

13
задан floatingpurr 4 August 2015 в 10:48
поделиться

4 ответа

item не словарь, а класс, поэтому он имеет различный синтаксис для доступа к членам. Доступ к id таким образом:

item.id
19
ответ дан SuperBiasedMan 25 August 2018 в 23:33
поделиться

Как и в случае ошибки, вы можете использовать только индекс в экземплярах класса, если класс определяет метод экземпляра __getitem__().

Поскольку id является атрибутом экземпляра, вы должны использовать - item.id вместо item['id'].

Пример -

recent_item = next( (item for item in myClassList if item.id == id), None )
1
ответ дан Anand S Kumar 25 August 2018 в 23:33
поделиться

id является атрибутом экземпляра MyClass, вам нужно получить к нему доступ как item.id

recent_item = next( (item for item in myClassList if item.id == id), None )
2
ответ дан Anbarasan 25 August 2018 в 23:33
поделиться

Если вы действительно хотели иметь доступ к вашим атрибутам с помощью inst["attr"] и объяснять свою ошибку, вам нужно добавить к вам класс __getitem__:

class MyClass(object):
    def __init__(self, id, a, b, c):
        self.myList     = []
        self.id         = id
        self.a          = a
        self.b          = b
        self.c          = c

    def addData(self, data):
        self.myList.append(data)

    def __getitem__(self, item):
        return getattr(self, item)
11
ответ дан Padraic Cunningham 25 August 2018 в 23:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: