无法在Python中循环访问对象列表

时间:2016-07-18 20:21:29

标签: python class loops python-3.x

我将类的实例附加到Python中的列表中,如下所示:

a_list = []
a_list.append(AClass())

(至少有一个附加)。

尝试遍历列表时:

for a in a_list:
    # Do something to know if loop runs...
    pass

它似乎没有运行循环。

打印列表长度时,它为0。

该列表作为类*实例的属性附加(其文件包含" AClass"导入的文件)。该列表在第三个文件的类实例中循环(并经过长度检查),该类实例也附加在第一个类*的实例上。

2 个答案:

答案 0 :(得分:1)

这很奇怪,这就是我得到的:

class AClass():
    pass

a_list = []
a_list.append(AClass())

for a in a_list:
    print(a)
# <__main__.AClass object at 0x10b510c18>

print(len(a_list))
# 1

a_list.append(AClass())

print(len(a_list))
# 2

问题可能与您将列表分配为类属性有关吗? (需要查看您的代码以确认。)

答案 1 :(得分:1)

嗯...对我有用:

>>> class AClass(object):
...   def __init__(self):
...     self.a = "AClass"
... 
>>> a_list = []
>>> a_list.append(AClass())
>>> a_list.append(AClass())
>>> a_list.append(AClass())
>>> for a in a_list:
...   print a.a
... 
AClass
AClass
AClass
>>> 

使用python 2.7