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