我尝试在python上使用dictionary作为switch case,但是参数似乎没有传递给被调用的函数,请帮助:
def switchcase(num,cc):
def fa(num):
out= num*1.1;
def fb(num):
out= num*2.2;
def fc(num):
out= num*3.3;
def fd(num):
out= num*4.4;
options = {
"a":fa(num),
"b":fb(num),
"c":fc(num),
"d":fd(num)
}
out=0
options[cc];
return out
print switchcase(10,"a")
输出为0,我无法解决问题
这是另一种选择。您只需导航到切换器外部的必要方法,如果需要,还可以传递可选参数:
问题是:
基本上不管
options[cc]
给你什么,你都要返回0
,因为那是out
的值。注意,在各种fa
,fb
中设置out
。。。函数不改变调用者中out
的值。在你可能想要:
^{pr2}$还要注意的是,这在实践中会非常低效。每次调用
switchcase
时,都要创建4个函数(并调用每个函数)。在我猜你实际上想创建一个预先制作的函数映射。然后,您可以从地图中选择您实际想要的函数,并用给定的数字调用它:
另一个简短的版本是:
相关问题 更多 >
编程相关推荐