gpt4 book ai didi

"library"文件中的 python eval

转载 作者:行者123 更新时间:2023-12-01 04:33:05 24 4
gpt4 key购买 nike

如果我有一个文件,我们将调用他test1.py,其中包含:

code='''
class Something(object):
def __init__(self):
print "blah blah blah, this is a horrible idea"
def run():
print "don't preach at me you pretentious fool"
'''
eval(compile(code, '<string>', 'exec'))

然后在我的 eval 语句下面,在同一个 test1.py 文件中,我当然可以执行以下操作:

x = Something()
run()

但是...如果我有另一个名为 test2.py 的文件,并且我希望能够运行 run() 或实例化一个 触发 import test1 后,有什么东西?我假设需要对 locals()globals() 进行一些操作,但 Google 在这里让我失望了。

最佳答案

不,我认为您不需要执行任何类型的 locals()globals() 操作,您只需执行 - import test1 ,然后将 Something 对象实例化为 -

import test1
x = test1.Something()
test1.run()
<小时/>

示例/演示 -

我的 a.py 具有与您为 test1.py 粘贴的完全相同的代码,然后我可以执行 -

>>> import a
>>> x = a.Something()
blah blah blah, this is a horrible idea
>>> a.run()
don't preach at me you pretentious fool

另外,你应该听一下 __init__() 所说的,这确实是一个可怕的想法。

关于 "library"文件中的 python eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103232/

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