2010-08-11 133 views

回答

5

它应该是简单:

import constants 
print(constants.__dict__) 
+0

哇,这比我的答案简单。 – tgray 2010-08-11 17:26:10

2
import constants 

constants_dict = {} 
for constant in dir(constants): 
    constants_dict[constant] = getattr(constants, constant) 

我不确定我是否看到这一点。如何编写constants_dict['MY_CONSTANT']constants.MY_CONSTANT更好/更容易/更具可读性?

编辑:

基于评论,我现在看到一些潜在的用途。

这是另一种写上述方法,取决于你想要的紧凑程度。

constants_dict = dict((c, getattr(constants, c)) for c in dir(constants)) 

EDIT2:

cji为赢! constants.__dict__

+0

有一件事我能想到的是使用计算值作为重点 - 但后来有'getattr'和'setattr'功能。 – cji 2010-08-11 17:10:54

+0

嗯,我可以回答我目前的项目(虽然我的问题是函数,而不是变量):我们必须通过三个套接字连接,USB连接和无线电信号来引用变量(函数,在我的情况下)从函数调用到函数执行的完整路径)。目标需要一个字符串字典:函数配对来知道要调用哪个函数,只需要给定函数名称和参数值即可使用。更具体地说,我们配对字符串:函数,然后配对字节:字符串,这让我们配对字节:函数(严重减少数据包大小)。 – 2010-08-11 17:14:02

+0

我将常量传递给我的模板...'constants_dict'部分将放弃,并且可以直接使用我的常量。 – mpen 2010-08-11 17:14:15