2

假设我有一个带有一些值的选择框,例如“RED”、“BLUE”和“GREEN”,我想将这些字符串用作对称为相同事物但包含元组的常量的引用,如下所示:

RED = ('x234114','z8765667')

我正在寻找的代码在我的脑海中看起来像这样:)

globals_lookup('RED')

这可能是一个明显的问题,但它不会来找我。

4

4 回答 4

2

使用评估:

RED = ('x234114','z8765667')
def globals_lookup(ident):
    return eval(ident)    
t=globals_lookup('RED')

但更好的方法是使用哈希表:

colors={'RED':('x234114','z8765667')}
t=colors['RED']
于 2013-06-03T22:21:56.417 回答
2

一旦你用元组定义了变量,你就可以使用局部变量来访问它。

>>> RED = ('x234114','z8765667')
>>> locals()["RED"]
('x234114', 'z8765667')

但正确的方法是使用字典

>>> select_data = {"RED" :('x234114','z8765667'),"BLUE":('x934587','z943657')}
>>> select_data["RED"]

('x234114','z8765667')
于 2013-06-03T22:23:00.003 回答
1

使用 Python 字典:

lookup = {
    'RED' : ('x234114','z8765667')
}

用法:

color = "RED"
tup = lookup[color]
assert tup == ('x234114','z8765667')
于 2013-06-03T22:21:07.323 回答
1
RED = ('x234114','z8765667')
color_table = {'RED': RED, 'GREEN': GREEN, 'BLUE': BLUE}

def globals_lookup(color):
    return color_table[color]
于 2013-06-03T22:25:32.453 回答