假设我有一个包含'RED','BLUE'和'GREEN'等值的选择框,并且我想使用这些字符串作为常量的引用的事情,但含元组,像这样:如何在Python中将字符串转换为常量元组
RED = ('x234114','z8765667')
我要找会是这个样子在我脑海里的眼睛:)
globals_lookup('RED')
这可能是一个明显的代码,但它不是来找我。
假设我有一个包含'RED','BLUE'和'GREEN'等值的选择框,并且我想使用这些字符串作为常量的引用的事情,但含元组,像这样:如何在Python中将字符串转换为常量元组
RED = ('x234114','z8765667')
我要找会是这个样子在我脑海里的眼睛:)
globals_lookup('RED')
这可能是一个明显的代码,但它不是来找我。
一旦你定义了变量的元组,你就可以访问它的本地人。
>>> RED = ('x234114','z8765667')
>>> locals()["RED"]
('x234114', 'z8765667')
但是应该使用字典
>>> select_data = {"RED" :('x234114','z8765667'),"BLUE":('x934587','z943657')}
>>> select_data["RED"]
('x234114','z8765667')
使用Python字典:
lookup = {
'RED' : ('x234114','z8765667')
}
用法:
color = "RED"
tup = lookup[color]
assert tup == ('x234114','z8765667')
使用eval:
RED = ('x234114','z8765667')
def globals_lookup(ident):
return eval(ident)
t=globals_lookup('RED')
但更好的方法是使用一个哈希表:
colors={'RED':('x234114','z8765667')}
t=colors['RED']
不需要'eval()',只需''返回全局变量()[ident]' – martineau
RED = ('x234114','z8765667')
color_table = {'RED': RED, 'GREEN': GREEN, 'BLUE': BLUE}
def globals_lookup(color):
return color_table[color]
做正确的方式有一个[全局()](http://docs.python.org/2/library /functions.html#globals)函数返回当前全局命名空间的字典...这是你想要的吗? – SethMMorton
您是否可以不将常量存储在全局字典中? – Ben
我猜我自从我的评论和前两个答案都回答了不同的问题,你需要澄清你想要什么。 – SethMMorton