python - 在Python中的类函数中使用exec时出现问题

标签 python class exec

以下代码按预期工作

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/

相关文章:

python - python如何解释带有前导零的数字

java - 尽管类型相同,但我收到了一个 ClassCastException 事件。为什么?

php - 如何使用来自 php 网页的 expect 脚本?

python - 使用 Mayavi/Python 从数据中绘制 3D 等高线图

python - 将行添加到其他数据框的顶部

Python:嵌套类而不使导入复杂化

Python 计数器变量在第二次运行时出错?

java - 在android中执行管道命令

linux - bash:运行 "find --exec ..."命令并终止 "\;",全部存储在变量中?

python - 来自 Python ctypes 的 Microsoft ICertAdmin2 接口(interface)