我嘗試獲取列表中的對象實例的索引。我不知道如何在沒有for循環的情況下做到這一點。Python從列表中返回類的實例
如果有人能指示我正確的方向,而不是循環它。
我發現該列表具有任何()函數的實例,但無法從中獲取索引。
我試圖澄清我的問題。如果任何() - fucntion可以找到該列表(self.data)具有對象的實例。 any() - 函數只返回true/false。有沒有函數或方法來獲取該實例的索引,以便我可以調用它。
和代碼:
class MyClass:
def __init__(self, f):
self.data = []
self.f = open(f, "rb")
self.mod = sys.modules[__name__]
def readFile(self):
f = self.f
try:
self.head = f.read(8)
while True:
length = f.read(4)
if length == b'':
break
c = getattr(self.mod, f.read(4).decode())
if any(isinstance(x, c) for x in self.data):
index = self.data.index(c) #Problem is here
self.data[index].append(f.read(int(length.hex(), 16)))
else:
obj = c(data=f.read(int(length.hex(), 16)))
self.data.append(obj)
f.read(4) #TODO check CRC
finally:
f.close()
也許你應該在init中設置'self.data = []'而不是在類級別? –
你能提供一個你正在閱讀的示例文件嗎? – urban
好點,@JohnZwinck。代碼僅用於學習目的,如果有任何目的或評論我做錯了,我很高興聽到他們的消息。 – Evus