여기는 내 첫 번째 질문이며 Python의 첫 번째 프로젝트입니다. __getattribute__가 다음과 같이 실패하는 이유는 무엇입니까? 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을 파이썬에서 클래스 인스턴스를 저장하는 법을 잘 이해하지 못한다.
'__ip500DevicesLst'가 무엇인지 추측해야합니다. –
OP는 매우 깔끔하게 '__ip500DevicesLst'가 목록임을 나타냅니다. 그러나 이것은''__getattribute__'를 호출하면 오류가 발생하는 이유와 관련이 없습니다. OP가 이에 대한 충분한 정보를 제공 했으므로 질문을 다시해야한다고 생각합니다. – ekhumoro
목록에있는 항목 중 하나와 비슷하게 보이는 것은 '없음'입니다. 목록에 추가 된 것으로 표시된 메소드 호출에서 왔는지 또는 이미 '없음'이 포함되어 있는지 확실하지 않습니다. 어느 쪽이든, 목록 내용이 예상대로 작동하는지 확인하십시오. – Basic