インスタンスのいくつかのパラメータの間に依存関係を作成したいと思います(例では必ずしも同じクラスである必要はありません)。私はfolowingコードを思いつきました。私はそれをモジュールに移動してインポートすることにしました。インポートされたクラスと定義されたクラスの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
「問題」とは何ですか?ある種のエラーメッセージが表示されていますが、これは忘れてしまったものですか?私はあなたが投稿したものに 'import'ステートメントも表示されません。あなたの質問はどのようにインポートに関連していますか? – kindall
また、これらの 'eval()'ステートメントは何をしていますか? – Blender