为什么我没有定义'自我'?此代码位于类中的函数下。 main_root应该可以在类中的任何地方访问,因为它在___init____下初始化为self.main_root =一个元素。函数的第一个参数也是'self'。
root_string = "self.main_root[0][1]"
globals()
code_locals = {'temp_string':""}
command_string = "temp_string = str(" + root_string + ".tag) + str(" + root_string + ".attrib)"
exec(command_string,globals(),code_locals)
如果我设置root_string = "main_root[0][1]"
,那么我将得到main_root未定义。即使我尝试事先指定main_root = copy.deepcopy(self.main_root)
答案 0 :(得分:1)
如果您需要在self
语句中访问exec
变量,则应在样本中使用locals()
而不是code_locals
传递第三个参数。
答案 1 :(得分:0)
应该是
root_string =self.main_root[0][1]
或者如果你想要它作为字符串,请将其作为
root_string = str(self.root[0][1])
你必须将变量转换为type(string,int等),你希望你不能将它初始化为“self.main_root [0] [1]”