[英]Running a for loop to create functions with exec, inside a class, inside a function
[英]Running exec inside function
如何在函数中使用 python exec 关键字?
它会损害你的函数的性能,以及它的可维护性,但是如果你真的想让你自己的代码变得更糟,Python2(这在 Python3 中不起作用,你需要使用第二种选择)给你“足够了用绳子射自己的脚”(;-):
>>> def horror():
... exec "x=23"
... return x
...
>>> print horror()
23
一点点不太可怕,当然,将是exec
特定字典:
>>> def better():
... d = {}
... exec "x=23" in d
... return d['x']
...
>>> print better()
23
这至少避免了第一种方法的命名空间污染。
Alex 的答案在 Python 3 中的工作方式略有不同。
由于 exec() 是 Python 3 中的函数,因此请使用以下模式-
def better():
d = {}
exec("x=23", d)
return d['x']
print better()
23
有关更多详细信息,请参阅此问题 - Python 2 和 Python 3 中 exec 函数的行为
是的。
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"
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.