为什么在Python中没有导入类属性更改?

时间:2016-01-09 20:22:58

标签: python python-import

我试图理解<!DOCTYPE html> <html lang="en"> <p>test</p> </html> 的机制。 想象一下,我有几个班级__import__(fromlist=['MyClass'])

WhiteBox

我正在使用class WhiteBox: def __init__(self): self.name = "White Box" self.color = None def use(self, color): self.paint(color) def paint(self, color): self.color = color 语句导入这些。 我决定用相同的颜色重新绘制所有框并创建一个循环:

__import__(fromlist=['WhiteBox'])

当我尝试访问for box in imported_boxes: box.WhiteBox().use = "green" print("REPAINTED:", box.WhiteBox().name, box.WhiteBox().color) 属性时,我仍然会获得box.WhiteBox().color

None

我希望REPAINTED: WhiteBox None 允许操纵对象,就像它被实例化一样,它似乎不是真的。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

使用正在使用&#34;使用&#34;作为一个属性,但它定义为一个函数:

box = box.WhiteBox() = "green"
#change it to:
box.WhiteBox().use("green")

下一个问题:

您正在反复创建WhiteBox,因此它始终具有初始无值...

box.WhiteBox().use("green") #created once
print("REPAINTED:", box.WhiteBox().name, box.WhiteBox().color) #two more times...