在函数内运行exec

2024-05-23 13:41:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在函数内部使用python exec关键字?在


Tags: 函数关键字exec
3条回答

这会损害函数的性能,以及它的可维护性,但是如果你真的想让你自己的代码变得更糟,Python2(这在Python3中不起作用,你需要使用第二个替代方法)给你“足够的绳子来射自己的脚”(;-):

>>> def horror():
...   exec "x=23"
...   return x
... 
>>> print horror()
23

当然,稍微不那么可怕的是exec在一个特定的句子中:

^{pr2}$

这至少避免了第一种方法的名称空间污染。在

Alex的答案在python3中的工作方式略有不同。在

由于exec()是Python3中的函数,请使用以下模式-

def better():
    d = {}
    exec("x=23", d)
    return d['x']

print better()
23

请参阅此问题以了解更多详细信息- Behavior of exec function in Python 2 and Python 3

是的。在

class A:
    def __init__(self):
        self.a1 = ''
        self.a2 = ''

def populate():
    att1 = raw_input("enter a1: ")
    att2 = raw_input("enter a2: ")
    my_object = A()
    eval("my_obj.a1 = att1")
    eval("my_obj.a2 = att2")
    if eval("my_obj.a2") == 2:
    print "Hooray! the value of a2 in my_obj is 2"

希望这有帮助

相关问题 更多 >