Python函数字典调用每个函数



这看起来很琐碎,但由于某种原因,我的字典无法工作。

这是我的代码:

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]()

请注意将执行调用的()

创建dictionary时,首先调用这些方法=这就是为什么您看到东西两次,然后将从方法返回的值分配给dict(在这种情况下为None,因为方法只打印,不返回任何值(。

最新更新