Python超全球?

Sha*_*ard 4 python python-3.x

Python中是否存在超级全局(如PHP)?我想在整个项目中使用某些变量在单独的文件,类和函数中,我不想在每个文件中继续声明它.

bob*_*nce 19

从理论上来说,你可以开始向__builtin__吐痰:

>>> import __builtin__
>>> __builtin__.rubbish= 3
>>> rubbish
3
Run Code Online (Sandbox Code Playgroud)

但是,不要这样做; 这可怕的邪恶会给你的应用程序编程 - 癌症.

类和函数,我不想继续声明

将它们放入模块中并在需要时使用它们"导入"它们.

我想在整个项目中使用某些变量

如果你必须有非限定值,只需将它们放在一个名为"mypackage/constants.py"的文件中,然后:

from mypackage.constants import *
Run Code Online (Sandbox Code Playgroud)

如果它们确实是"变量",您在应用程序执行期间更改它们,则需要开始将它们封装在对象中.

  • 对于 Python3,您可以使用“builtins”而不是“__builtin__”。这是调试的一个很棒的功能,谢谢! (2认同)

var*_*tec 6

创建空的 superglobal.py 模块。
在您的文件中执行以下操作:

import superglobal
superglobal.whatever = loacalWhatever
other = superglobal.other
Run Code Online (Sandbox Code Playgroud)