以下两个"开关"工作:
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])()
"字典切换"习惯用语适用于当您有一个要映射到另一个值的键时。在您的情况下,这是多余的。