草庐IT

exec_mem

全部标签

python - 在 Python 3 中使用在 exec'ed 字符串中定义的函数

这个问题在这里已经有了答案:Howtogetlocalvariablesupdated,whenusingthe`exec`call?(3个回答)关闭8年前。为什么下面的python3代码会报错?a='''defx():print(42)'''classTest:def__init__(self):exec(a)x()t=Test()此消息中的结果:Traceback(mostrecentcalllast):File"bug.py",line11,int=Test()File"bug.py",line9,in__init__x()NameError:globalname'x'isnot

python - 使用 `exec` 调用时如何更新局部变量?

我以为这会打印3,但它会打印1:#Python3deff():a=1exec("a=3")print(a)f()#1Expected3 最佳答案 此问题在Python3buglist中有所讨论。.最终,要获得这种行为,您需要这样做:deffoo():ldict={}exec("a=3",globals(),ldict)a=ldict['a']print(a)如果您检查thePython3documentationonexec,您将看到以下注释:Thedefaultlocalsactasdescribedforfunctionloca

python - 使用 `exec` 调用时如何更新局部变量?

我以为这会打印3,但它会打印1:#Python3deff():a=1exec("a=3")print(a)f()#1Expected3 最佳答案 此问题在Python3buglist中有所讨论。.最终,要获得这种行为,您需要这样做:deffoo():ldict={}exec("a=3",globals(),ldict)a=ldict['a']print(a)如果您检查thePython3documentationonexec,您将看到以下注释:Thedefaultlocalsactasdescribedforfunctionloca

python - 为什么函数中的 exec 中的导入不起作用?

我可以将导入语句放在一个字符串中,执行它,它可以工作(打印一个随机数字):code="""importrandomdeff():printrandom.randint(0,9)"""deff():passexeccodef()现在,如果我把execcode和f()放在它们自己的函数中并调用它,它就不起作用了。deftest():execcodef()test()它说NameError:globalname'random'isnotdefined. 最佳答案 这个怎么样:deftest():exec(code,globals())f(

python - 为什么函数中的 exec 中的导入不起作用?

我可以将导入语句放在一个字符串中,执行它,它可以工作(打印一个随机数字):code="""importrandomdeff():printrandom.randint(0,9)"""deff():passexeccodef()现在,如果我把execcode和f()放在它们自己的函数中并调用它,它就不起作用了。deftest():execcodef()test()它说NameError:globalname'random'isnotdefined. 最佳答案 这个怎么样:deftest():exec(code,globals())f(

python - python exec() 中的全局变量和局部变量

我正在尝试使用exec运行一段python代码。my_code="""classA(object):passprint'locals:%s'%locals()print'A:%s'%AclassB(object):a_ref=A"""global_env={}local_env={}my_code_AST=compile(my_code,"MyCode","exec")exec(my_code_AST,global_env,local_env)printlocal_env导致以下输出locals:{'A':}A:Traceback(mostrecentcalllast):File"py

python - python exec() 中的全局变量和局部变量

我正在尝试使用exec运行一段python代码。my_code="""classA(object):passprint'locals:%s'%locals()print'A:%s'%AclassB(object):a_ref=A"""global_env={}local_env={}my_code_AST=compile(my_code,"MyCode","exec")exec(my_code_AST,global_env,local_env)printlocal_env导致以下输出locals:{'A':}A:Traceback(mostrecentcalllast):File"py

python - 操作系统错误 : [Errno 8] Exec format error

我很难解析subprocess.Popen的参数。我正在尝试在我的Unix服务器上执行脚本。在shell提示符下运行时的脚本语法如下:/usr/local/bin/scripthostname=-pLONGLIST.无论我如何尝试,脚本都没有在subprocess.Popen中运行“=”前后的空格为必填项。importsubprocessOut=subprocess.Popen(['/usr/local/bin/script','hostname=','actualservername','-p','LONGLIST'],shell=True,stdout=subprocess.PIP

python - 操作系统错误 : [Errno 8] Exec format error

我很难解析subprocess.Popen的参数。我正在尝试在我的Unix服务器上执行脚本。在shell提示符下运行时的脚本语法如下:/usr/local/bin/scripthostname=-pLONGLIST.无论我如何尝试,脚本都没有在subprocess.Popen中运行“=”前后的空格为必填项。importsubprocessOut=subprocess.Popen(['/usr/local/bin/script','hostname=','actualservername','-p','LONGLIST'],shell=True,stdout=subprocess.PIP

python - Python 2 和 Python 3 中 exec 函数的行为

以下代码在Python2和Python3中给出不同的输出:fromsysimportversionprint(version)defexecute(a,st):b=42exec("b={}\nprint('b:',b)".format(st))print(b)a=1.execute(a,"1.E6*a")Python2打印:2.7.2(default,Jun122011,15:08:59)[MSCv.150032bit(Intel)]('b:',1000000.0)1000000.0Python3打印:3.2.3(default,Apr112012,07:15:24)[MSCv.150