gpt4 book ai didi

python - 在类中使用 execfile 获取参数时出现问题

转载 作者:行者123 更新时间:2023-11-28 17:52:58 25 4
gpt4 key购买 nike

我遇到的问题与 this question 中的第一个问题类似,据我所知没有得到答复。

我有一个文件“config.py”,其中包含一个类要使用的大量参数(这个 config.py 文件会更改),但是我无法通过 execfile 将这些参数传播到类中。

在示例代码中:

class Class():
def __init__(self):
execfile("config.py")
print x

# config.py
x = "foo"

>>> t = Class()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 4, in __init__
NameError: global name 'x' is not defined

欢迎提供任何帮助,或从文件中检索要在类中使用的参数的任何更好的方法。

非常感谢。

最佳答案

我不明白你想做什么(但我不喜欢它,这就是我)但要解决你的问题(在 python2.6 中测试):

class Class():
def __init__(self):
execfile('config.py', locals()) # Not recommanded, maybe you want globals().
print x

但是来自doc :

Note

The default locals act as described for function locals() below: modifications to the default locals dictionary should not be attempted. Pass an explicit locals dictionary if you need to see effects of the code on locals after function execfile() returns. execfile() cannot be used reliably to modify a function’s locals.

关于:

Any help welcome, or any better methods of retrieving parameters from a file to be used in a class.

您可以使用导入。

关于python - 在类中使用 execfile 获取参数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372703/

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