我想在實例的某些參數(不一定與示例中的類相同)之間創建依賴關係。我想出了以下代碼,直到我決定將它移入模塊並通過導入使用它。導入的和定義的類之間的python區別
class objectD(object):
def __init__(self,val1,val2,val3):
self.val1 = val1
self.val2 = val2
self.val3 = val3
def __str__(self):
return str(str(self.val1)+","+str(self.val2)+","+str(self.val3))
def dependence(self,dependent):
print "values val1 and val2 of "+str(self)+" now depend on "+dependent
self.val1 = eval(dependent).val1
self.val2 = eval(dependent).val2
self.dependent = dependent
def update(self):
self.val1 = eval(self.dependent).val1
self.val2 = eval(self.dependent).val2
#test
obj1 = objectD(350,4,500)
print obj1
obj2 = objectD(230,1,1000)
print obj2
obj2.dependence("obj1")#problem with imported class occurs there
print obj2
obj1.val1 = 1315
obj1.val2 = 6464
print obj1
obj2.update()
print obj2
問題似乎在分配依賴的實例通過使用導入的類的類根本不存在根據python。在我看來,調用方法依賴關係()對實例繼續在模塊中,而不是在我的腳本。 有沒有辦法以某種方式修復導入,或者可能是某種不同的方法來創建依賴關係?
永遠不要使用'eval',除非你真的知道你在做什麼。 – Thomas 2012-03-14 21:02:12
什麼「問題」?您是否收到某種您忘記包含的錯誤信息?我也沒有在您發佈的內容中看到任何「import」聲明;你的問題與導入有關嗎? – kindall 2012-03-14 21:03:03
另外,那些'eval()'語句應該做什麼? – Blender 2012-03-14 21:03:58