以下代码按预期工作
name = "Test"
myname = ""
exec('myname ="' + name + '"')
print(myname)
显示结果:
Test
问题
但是,如果我在 class
的函数中定义相同的内容并执行它,我会得到一个空字符串。
class new(object):
def __init__(self, name):
self.print(name)
def print(self, name):
myname = ""
exec('myname ="' + name + '"')
print(myname)
a = new("My name")
上面是一个更大代码的玩具示例代码。
问题
如何定义函数才能得到相同的结果?在更大的代码中实际上需要 exec 函数。
最佳答案
您可以将字典作为 exec
的全局变量(或局部变量)传递。
def print(self, name):
d = {"myname": ""}
exec('myname ="' + name + '"', d)
print(d["myname"])
关于python - 在Python中的类函数中使用exec时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74880750/