我来自具有静态变量的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中存储字符串的可接受方式吗?
答案 0 :(得分:0)
您可以将配置与程序本身分开。查看:http://wiki.python.org/moin/ConfigParserShootout
答案 1 :(得分:0)
如果你需要定义一个静态的常量,它应该在模块级别完成,所有大写字母用下划线分隔,如下所示:
https://www.python.org/dev/peps/pep-0008/#constants
简而言之,是的,没关系。
Pep8推荐了Python代码的样式和约定,我强烈建议您遵循。
答案 2 :(得分:0)
约定是将模块中的常量声明为以大写形式写的变量(Python样式指南:https://www.python.org/dev/peps/pep-0008/#global-variable-names)。
但是在导入模块时,没有办法阻止其他人重新声明这样的变量 - 从而忽略约定。
通过from ... import *
导入模块时,有两种方法可以解决此问题:
__all__
(从而排除__all__
列表中未包含的所有对象)