第一次用户堆栈溢出,我很高兴来到这里。
简介:我最近开始进入Python编程世界的神奇冒险 - 我喜欢它。现在一切都在我从C的尴尬过渡中顺利进行,但是我在创建一个与HEADER文件(.h)同义的东西时遇到了麻烦。
问题:我有中等大小的词典和列表(大约1,000个元素),冗长的枚举和'#defines'(实际上并非如此),但我找不到一种清晰的方式来组织它们。在C中,我会将它们全部放在头文件中,并且从不再考虑它,但是,在Python中,这是不可能的,或者我认为。
CURRENT DIRTY SOLUTION:我正在初始化MODULE或FUNCTION顶部的所有CONSTANT变量(模块,如果有多个函数需要它)。
结论:如果有人想出一种清洁组织常数变量的方法,我将永远感激不尽。
非常感谢!
将常量放入自己的模块中:
# constants.py
RED = 1
BLUE = 2
GREEN = 3
然后导入该模块并使用常量:
import constants
print "RED is", constants.RED
常量可以是你喜欢的任何值,我在这里显示整数,但列表和dicts也可以正常工作。
通常我会这样做:
文件:constants.py
CONSTANT1 = 'asd'
CONSTANT_FOO = 123
CONSTANT_BAR = [1, 2, 5]
文件:your_script.py
from constants import CONSTANT1, CONSTANT_FOO
# or if you want *all* of them
# from constants import *
...
现在你的常量在一个文件中,你可以很好地导入和使用它们。
创建一个单独的文件constants.py
,并将所有与全局相关的常量放在那里。然后你可以import constants
将它们称为constants.SPAM
或做(有问题的)from constants import *
将它们简称为SPAM
或EGGS
。
虽然我们在这里,但请注意Python不支持常量常量。该惯例只是在ALL_CAPS
中命名它们并承诺不会改变它们。