python模块中的变量是如何工作的?

python模块中的变量是如何工作的?,python,module,python-module,Python,Module,Python Module,我来自一个有静态变量的Java背景,我试图在python应用程序中创建一个常用字符串列表。我知道python中没有静态变量,因此我编写了一个模块,如下所示: import os APP_NAME = 'Window Logger' APP_DATA_FOLDER_PATH = os.path.abspath(os.environ['APPDATA'])+'\\%s' % APP_NAME CURRENT_SESSION_NAME = 'session_1' CURRENT_SESSION_XM

我来自一个有静态变量的Java背景,我试图在python应用程序中创建一个常用字符串列表。我知道python中没有静态变量,因此我编写了一个模块,如下所示:

import os

APP_NAME = 'Window Logger'
APP_DATA_FOLDER_PATH = os.path.abspath(os.environ['APPDATA'])+'\\%s' % APP_NAME
CURRENT_SESSION_NAME = 'session_1'
CURRENT_SESSION_XML_PATH = APP_DATA_FOLDER_PATH + '\\%s%s' % (CURRENT_SESSION_NAME, '.xml')

这是在python中存储字符串的一种可接受的方法吗?

您可以将配置与程序本身分开。签出:

如果需要定义一个静态常量,则应在模块级完成,所有大写字母都用下划线分隔,如下所示:

import os

APP_NAME = 'Window Logger'
APP_DATA_FOLDER_PATH = os.path.abspath(os.environ['APPDATA'])+'\\%s' % APP_NAME
CURRENT_SESSION_NAME = 'session_1'
CURRENT_SESSION_XML_PATH = APP_DATA_FOLDER_PATH + '\\%s%s' % (CURRENT_SESSION_NAME, '.xml')
简言之,是的,那很好


Pep8推荐了Python代码的样式和约定,我强烈建议您遵循。

约定是将模块中的常量声明为大写Python样式指南中编写的变量:

但在导入模块时,无法阻止其他人重新声明这样的变量,从而忽略约定

当从导入模块时,有两种方法可以解决此问题。。。导入*:

对于不应导出的常量,请使用以下划线开头的名称 定义一个常量和函数的列表,这些常量和函数应该是公共的,因此排除了所有不包含在列表中的对象 如果期望它们是静态常量,那么就可以了。