我开始用python进行面向对象编程,在我的程序中,我决定将类实例存储在数组中,但我现在不知道如何访问类变量。你知道吗
class apixel(object):
def __init__(self):
self.posx = random.randint(0, 300)
self.posy = random.randint(0, 200)
def do_i_exist():
print("Yes i do!")
p = [apixel] * 10
for obj in p:
obj.do_i_exist() #that works
print(obj.posx) #but that does not work
问题是您需要实际实例化对象,否则
__init__
永远不会被调用。你知道吗尝试:
根据Craig下面的评论,列表理解调用构造函数10次,得到10个独立的对象。你知道吗
但是,您的
apixel
没有self.posx
的原因是您的代码从未调用过构造函数。您没有创建类的实例列表,而是创建类定义的引用列表。你知道吗根据DanielPryden对OP的评论,您应该将
do_i_exist
方法的签名更改为接受self
,或者将其注释为static
:相关问题 更多 >
编程相关推荐