これは私のコードですeval()
。ルールのステータスを取得するために使用したいのですがeval()
、ローカル変数が必要です。基本クラスを継承するクラスが多数あるためget_stat()
、すべてのクラスで書き直す必要があります。
これを避けたいのですが、アイデアは、動的変数を作成することですget_stat()
。クラス b は fun で変数 a と b を動的に作成しますget_stat()
関数で動的変数を作成するにはどうすればよいですか? または、このばかげた考えを回避する他の方法。Python 3.2.3 を使用していますが、locals()
動作しません
class base(object):
def check(self):
stat = get_stat()
def get_stat(self):
pass
class b(base):
rule = 'a > 5 and b < 3'
a = 0
b = 0
def update_data(self, a, b):
self.a = a
self.b = b
def get_stat(self):
a = self.a
b = self.b
return eval(rule)
class b(base):
rule = 'd > 5 and e < 3'
d = 0
e = 0
def update_data(self, d, e):
self.d = d
self.e = e
def get_stat(self):
d = self.d
e = self.e
return eval(rule)