gpt4 book ai didi

python - 在主脚本中保留 helper python 脚本的环境

转载 作者:太空狗 更新时间:2023-10-30 00:53:06 26 4
gpt4 key购买 nike

我有一个辅助脚本,我想从充当服务器的主脚本调用它。这个主脚本看起来像这样:

Class Stuff():
def __init__(self, f):
self.f = f
self.log = {}

def execute(self, filename):
execfile(filename)

if __name__ == '__main__':
#start this script as server
clazz = Stuff()
#here helper_script name will be provided by client at runtime
clazz.execute(helper_script)

现在客户端将通过向主脚本(服务器)提供它的名称来调用这个帮助脚本。执行后我想在主脚本中保留辅助脚本的变量(即:a,b)。我知道一种方法是将这些变量从辅助脚本返回到主脚本。但是有没有其他方法可以保留帮助脚本的所有变量。这是帮助脚本的样子:

import os
a = 3
b = 4

我尝试使用 execfile 和 subprocess。

最佳答案

您可以将本地字典传递给 execfile。执行文件后,这个字典将包含它定义的局部变量。

class Stuff():
def __init__(self):
self.log = {}

def execute(self, filename):
client_locals = {}
execfile(filename, globals(), client_locals)
return client_locals

if __name__ == '__main__':
#start this script as server
clazz = Stuff()
#here helper_script name will be provided by client at runtime
client_locals = clazz.execute('client.py')
print(client_locals)

使用您的client.py,这将打印:

{'a': 3, 'b': 4, 'os': <module 'os' from '/Users/.../.pyenv/versions/2.7.6/lib/python2.7/os.pyc'>}

关于 execfile 的警告:不要将它用于来自不受信任来源的文件。

关于python - 在主脚本中保留 helper python 脚本的环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51102161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com