1
我想了解__import__(fromlist=['MyClass'])
的機制。 想象我有幾類WhiteBox
:爲什麼Python中不導入類屬性更改?
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
我預計__import__
將使操縱的對象,就好像它被實例化,看來並非如此。我該如何解決這個問題?
我想你應該加上'self.color = None'成'__init__'功能 – Arman
對不起,太快了,OK。如果我添加'self.color = None',該屬性將保持爲'None'。 – minerals
當你調用'box.WhiteBox()。use =「green」'時它應該改變,不是嗎? – Arman