这似乎很琐碎,但由于某些原因,我的字典无法正常工作。
这是我的代码:
class Calculator():
def __init__(self):
number = input()
self.switch_case(number)
def switch_case(self, number):
switcher = {
1: self.one(),
2: self.two(),
}
def one(self):
print("something")
def two(self):
print("something")
由于某些原因,即使我只输入值1作为输入,它也会同时调用函数one()和two()。
实际上,它什么也没叫。您提供的代码永远不会运行。
但是如果要创建Calculator
实例,则将运行__init__
,然后运行switch_case
并通过评估值表达式来初始化字典。这将同时调用这两个函数。
如果您现在不想运行它们,请删除括号:
switcher = {
1: self.one,
2: self.two,
}
并在需要时调用函数,例如:
self.switcher[1]()
注意要进行呼叫的()
。
创建字典时,首先将这些方法称为=,这就是为什么您两次看到something的原因,然后将从方法返回的值分配给dict(在这种情况下,无,原因方法仅打印,不返回任何内容)。