Это мой первый вопрос здесь, а также мой первый проект в Python.Почему __getattribute__ fail с: TypeError: объект «NoneType» не является вызываемым
Я пытаюсь хранить экземпляры класса под названием Ip500Device
:
class Ip500Device(object):
list = []
def __init__(self, shortMac, mac, status, deviceType):
self.__shortMac =shortMac
self.__mac=mac
self.__status=status
self.__deviceType=deviceType
self.__nbOfObjects=0
Ip500Device.list.append(self)
def __getattribute__(self, att):
if att=='hello':
return 0
Это первый тест просто «привет», но после того, что я хочу, чтобы получить все атрибуты.
С другой класс, я создаю объект устройства и добавить их в список:
self.__ip500DevicesLst.append(Ip500Device.Ip500Device(lst[0],lst[1],lst[2],lst[3]))
for abcd in self.__ip500DevicesLst:
print abcd.__getattribute__('hello')
Но когда я пытаюсь напечатать, программа возвращает это сообщение:
TypeError: 'NoneType' object is not callable
I не очень хорошо понимают, как хранить экземпляры классов в Python.
Нам нужно угадать, что такое '__ip500DevicesLst'. –
OP довольно чистая заявляет, что '__ip500DevicesLst' - это список. Однако это не относится к вопросу, связанный с тем, почему вызов '__getattribute__' вызывает ошибку. ОП дал достаточно информации, чтобы ответить на этот вопрос, поэтому я думаю, что вопрос должен быть вновь открыт. – ekhumoro
Кажется, что один из элементов в списке - «Нет». Не уверен, что это происходит из вызова метода, который вы показывали, чтобы добавить его в список или если он уже содержит «Нет». В любом случае, попробуйте проверить содержимое списка, как и ожидалось. – Basic