我如何将变量分配给eval / exec值?

问题描述 投票:0回答:1

是否可以将变量分配给exec / eval值?这是我尝试过的

def execute ():
    run_wn = tk.Tk() 
    des1 = tk.Label(run_wn, text = "------------------------------").pack()
    run_value = exec(cmd.get("1.0", "end"))
    value = tk.Label(run_wn, text = run_value)
    des2 = tk.Label(run_wn, text = "------------------------------").pack()
    run_wn.mainloop
bt = tk.Button(wn, text = "run", command = execute).pack()

该cmd是一个文本框。当我执行此代码时,它在运行屏幕中不会返回任何内容。它打印它有什么方法可以将值分配给exec / eval值,并将其用作Label中的文本?]

这只是一个实验项目。.

非常感谢您的帮助!

感谢

python variables exec eval
1个回答
0
投票

exec接受其他两个位置参数,即用于全局变量和局部变量的字典,因此您可以像这样执行以在dict中捕获结果:

In [1]: ns = {}
In [2]: exec("p = 1 + 2", globals(), ns)

In [3]: ns
Out[3]: {'p': 3}

执行不受信任的代码很危险。如果要将用户输入混入命令中,请勿这样做,除非您真的知道自己在做什么。

© www.soinside.com 2019 - 2024. All rights reserved.