Python - 定义常量列表或词典的最佳/最干净的方法

问题描述 投票:30回答:3

第一次用户堆栈溢出,我很高兴来到这里。

简介:我最近开始进入Python编程世界的神奇冒险 - 我喜欢它。现在一切都在我从C的尴尬过渡中顺利进行,但是我在创建一个与HEADER文件(.h)同义的东西时遇到了麻烦。

问题:我有中等大小的词典和列表(大约1,000个元素),冗长的枚举和'#defines'(实际上并非如此),但我找不到一种清晰的方式来组织它们。在C中,我会将它们全部放在头文件中,并且从不再考虑它,但是,在Python中,这是不可能的,或者我认为。

CURRENT DIRTY SOLUTION:我正在初始化MODULE或FUNCTION顶部的所有CONSTANT变量(模块,如果有多个函数需要它)。

结论:如果有人想出一种清洁组织常数变量的方法,我将永远感激不尽。

非常感谢!

python c header constants organized
3个回答
21
投票

将常量放入自己的模块中:

# constants.py

RED = 1
BLUE = 2
GREEN = 3

然后导入该模块并使用常量:

import constants

print "RED is", constants.RED

常量可以是你喜欢的任何值,我在这里显示整数,但列表和dicts也可以正常工作。


9
投票

通常我会这样做:

文件: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 *

...

现在你的常量在一个文件中,你可以很好地导入和使用它们。


3
投票

创建一个单独的文件constants.py,并将所有与全局相关的常量放在那里。然后你可以import constants将它们称为constants.SPAM或做(有问题的)from constants import *将它们简称为SPAMEGGS

虽然我们在这里,但请注意Python不支持常量常量。该惯例只是在ALL_CAPS中命名它们并承诺不会改变它们。

© www.soinside.com 2019 - 2024. All rights reserved.