假设我有一个带有一些值的选择框,例如“RED”、“BLUE”和“GREEN”,我想将这些字符串用作对称为相同事物但包含元组的常量的引用,如下所示:
RED = ('x234114','z8765667')
我正在寻找的代码在我的脑海中看起来像这样:)
globals_lookup('RED')
这可能是一个明显的问题,但它不会来找我。
使用评估:
RED = ('x234114','z8765667')
def globals_lookup(ident):
return eval(ident)
t=globals_lookup('RED')
但更好的方法是使用哈希表:
colors={'RED':('x234114','z8765667')}
t=colors['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')
RED = ('x234114','z8765667')
color_table = {'RED': RED, 'GREEN': GREEN, 'BLUE': BLUE}
def globals_lookup(color):
return color_table[color]