Python 中与 lua 的 loadfile 相当的函数是什么?

在 Lua 中有一个名为loadfile的函数,该函数允许程序将 .lua 文件解析到当前项目中。所有的函数和变量都可以像在同一个文件中编写一样使用。

这对于加载插件非常有用。我正在尝试将一个电报机器人移植到Python中,但找不到一个允许我加载 .py 文件并使函数在该文件的上下文中的函数。

我尝试过Python的 execfile 和导入文件,但这不能使已加载文件的函数在初始文件的范围内。

(即 fileA.py 加载 fileB.py。fileA 有函数 "doThis"。fileB 无法使用 execfile 访问 "doThis")

如何在Python中实现与Lua的loadfile相同的效果?

我正在使用Python 2.

点赞
用户416467
用户416467

你通常不应该这样做,因为通配符导入可能会使代码更难调试,但是:

from other_module import *

这会将other_module中定义的一切导入到当前模块的全局命名空间中。它不完全相同,但这是你能够得到的最接近的效果。

execfile("other_module.py", globals())

非常相似,除了它不会在sys.modules中缓存该模块。

2015-05-27 22:48:09