1

我正在尝试存储已在 exec() 函数内部运行的代码中读取或写入的变量,但我不知道执行此操作的最佳方法是什么。

我能想到的唯一方法是做这样的事情:

class newDict(dict):
    def __init__(self, *args):
         dict.__init__(self, args)
         self.accessed_variables = set()

    def __getitem__(self, key):
         val = dict.__getitem__(self, key)
         self.accessed_variables.add(key)
         return val

    def __setitem__(self, key, value):
         self.accessed_variables.add(key)
         dict.__setitem__(self, key,value)

    def get_variables(self):
         return self.accessed_variables

local_env = newDict()
global_env = newDict()
code = """ """
exec(code, global_env, local_env)
print(local_env.get_variables)
4

0 回答 0