>> "AB-6ren">
gpt4 book ai didi

python - 使用 Python 在方法中执行 execfile()

转载 作者:行者123 更新时间:2023-11-28 20:45:52 24 4
gpt4 key购买 nike

我有一个包含序言信息的 config.py 脚本。我可以使用 execfile() 函数来读取配置文件的内容。

execfile("config.py")
print PREAMBLE
>>> "ABC"

但是,当在方法中调用 execfile() 时,我有一个错误。

def a():
execfile("config.py")
print PREAMBLE

a()
>>> NameError: "global name 'PREAMBLE' is not defined"

出了什么问题以及如何解决这个问题?

最佳答案

您需要将全局字典传递给 execfile 以实现相同的结果:

def a():
execfile("config.py",globals())
print PREAMBLE

a()
>>> "some string"

如果你不想污染你的全局命名空间,你可以传递一个本地字典并使用它:

def a():
config = dict()
execfile('/tmp/file',config)
print config['PREAMBLE']

a()
>>> "some string"

作为引用,在上述两种情况下,/tmp/file 包含 PREAMBLE = "some string"

关于python - 使用 Python 在方法中执行 execfile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106377/

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