我想在实例的某些参数(不一定与示例中的类相同)之间创建依赖关系。我想出了以下代码,直到我决定将它移入模块并通过导入使用它。导入的和定义的类之间的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