使用字典作为开关而不将其分配给变量
Using a dictionary as switch without assigning it to a variable
以下两个"switches"作品:
return {
1: func1,
2: func2,
3: func3
}[random.choice([1,2,3])]()
d = {
1: func1,
2: func2,
3: func3
}
return d[random.choice(d.keys())]()
而且其实是一样的
现在我想做同样的事情,但从来没有将字典分配给变量 - 这可能吗?我知道 _
运算符会做类似的事情,所以我想知道是否也可以这样做。
return {
1: func1,
2: func2,
3: func3
}[random.choice(???.keys())]()
我只是好奇才问的
稍微改一下,嗯,减少间接:
return random.choice([func1, func2, func3])()
"dictionary switch" 惯用法适用于当您有一个要映射到另一个值的键时。在你的情况下这是多余的。
以下两个"switches"作品:
return {
1: func1,
2: func2,
3: func3
}[random.choice([1,2,3])]()
d = {
1: func1,
2: func2,
3: func3
}
return d[random.choice(d.keys())]()
而且其实是一样的
现在我想做同样的事情,但从来没有将字典分配给变量 - 这可能吗?我知道 _
运算符会做类似的事情,所以我想知道是否也可以这样做。
return {
1: func1,
2: func2,
3: func3
}[random.choice(???.keys())]()
我只是好奇才问的
稍微改一下,嗯,减少间接:
return random.choice([func1, func2, func3])()
"dictionary switch" 惯用法适用于当您有一个要映射到另一个值的键时。在你的情况下这是多余的。