【发布时间】:2017-10-24 10:47:27
【问题描述】:
我正在尝试在 python 中构建一个开关逻辑。
基于Replacements for switch statement in Python?我构建了以下代码:
def func(string):
print(string)
class Switch:
def __init__(self):
pass
def first_switch(self, case):
return {
'1': func('I am case 1'),
'2': func('I am case 2'),
'3': func('I am case 3'),
}.get(case, func('default'))
switch = Switch()
switch.first_switch('2')
这会给我输出:
I am case 1
I am case 2
I am case 3
default
我希望输出是
I am case 2
这个字典大小写逻辑是否只适用于类定义之外,还是我错过了一些额外的代码?看起来所有字典键值对都在函数调用时进行评估。
【问题讨论】:
-
该值为调用函数的结果。为什么不只存储字符串,然后在从字典中得到的任何内容上调用
func?另外,为什么要打扰func,而它只是print? -
如果你想存储值,func应该返回它的参数。现在你的字典全是无。
标签: python dictionary switch-statement