Python 模块变量到当前工作区

Python module variables into current workspace

正如我之前提到的,我最初来自 Matlab 背景,然后在发现 Python 之前转向 PHP。在 Matlab 和 PHP 中,有一些方法可以创建一个脚本,当 运行 所有变量都被转储到您当前的工作区中时。 Matlab 中的工作空间是从那里调用时的解释器,或者从函数调用时是函数的工作空间。我会将此功能用于常量 - 例如,您要在其中定义一组默认字体、线宽等的绘图工具。

现在 Python 我可以导入一个模块,但是该模块中的所有引用常量都需要 from {module} import *{module}.{constant}

这并没有真正限制我,只是带来了不便。但是,如果能够导入一个常量文件并让常量可用于调用它们的任何内容,那就太好了。

我怀疑 Python 不允许这样做,但我想我会问问是否有人有巧妙的解决方法。

这不是您通常应该做的事情,只是为了节省一点打字时间,但您可以通过以下方式做到这一点:

# define some constants
PI = 3.1415927
ANSWER = 42
UNLUCKY = 13

# put them into __main__ module (your interactive session)
if __name__ != "__main__":
    import sys as _sys
    _sys.modules["__main__"].__dict__.update(
        dict((k, v) for (k, v) in globals().iteritems() if not k.startswith("_")))

我不确定你的问题,但也许你的 IDE 可以帮助你摆脱那些导入。例如,在 Spyder 中,您可以执行一个启动脚本,该脚本将在启动新控制台时 运行。将您的导入放在那里将提供对这些文件的直接访问。