我该给我的Python全局模块取什么名字?
我正在用Python写一个应用程序,里面有一些全局变量,比如主窗口的引用、用户设置和用户界面中活动项目的列表,这些变量需要在程序的各个部分都能访问到。最近我才意识到,我把这个模块命名为 globals.py
,并且在文件顶部用 from globals import globals
语句导入了包含这些变量的对象。
显然,这样做是可行的,但我对把我的全局对象命名为Python内置名称感到有点不安。不幸的是,我想不出一个更好的命名方式。 global
和 all
也是Python的内置名称, universal
听起来不够准确, state
也不是很合适。我倾向于用 static
或 env
,虽然这两个词在计算机术语中有特定的含义,暗示着不同的概念。
那么,在Python中,你会怎么称呼这个包含所有其他模块全局变量的模块呢?
1 我知道我可以把这些变量(或者包含它们的单个对象)作为变量传递给我调用的每一个函数。但这样做不仅让启动代码和函数签名变得很难看,而且也不太可行。
6 个回答
这段代码是用来处理某些数据的。它可能涉及到一些循环、条件判断或者函数调用。具体来说,代码块中的内容会根据输入的不同而产生不同的结果。编程的时候,我们通常会用这样的代码来实现特定的功能,比如计算、排序或者数据过滤等。
如果你对代码的具体含义有疑问,可以尝试逐行阅读,看看每一行在做什么,或者查找相关的编程基础知识,这样会更容易理解。
`config` or `settings`
我建议尽量避免使用那种全局的容器模块,反而可以把这些变量放到各自的模块里,这样系统的各个部分都可以导入它们。
比如,主窗口的内容可以放在 main.py
这个文件里。用户设置可以放在 usersettings.py
里,这个文件会提供一些函数来查看和修改设置。
如果系统的其他部分需要访问用户设置,只需要简单地这样做:
from usersettings import get_setting, set_setting
...
# Do stuff with settings
类似的方法也可以用来处理其他需要全局访问的内容。这样做可以让不同的功能更加清晰分开,也让代码更容易测试,因为你可以单独测试每个模块,而不需要一直依赖 globals
模块。
我会把它叫做 env
。这样几乎没有人会把它和 os.environ
混淆(尤其是当你把代码整理得很好,可以用 myapp.environ
来调用的时候)。
我还会把 myapp.environ
里暴露的所有内容都做成一个类的属性,这样当我需要的时候,可以在设置值的地方加个断点。