Python函数字典调用每个函数

问题描述 投票:0回答:2

这似乎很琐碎,但由于某些原因,我的字典无法正常工作。

这是我的代码:

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

python dictionary
2个回答
1
投票

实际上,它什么也没叫。您提供的代码永远不会运行。

但是如果要创建Calculator实例,则将运行__init__,然后运行switch_case并通过评估值表达式来初始化字典。这将同时调用这两个函数。

如果您现在不想运行它们,请删除括号:

switcher = {
        1: self.one,
        2: self.two,
        }

并在需要时调用函数,例如:

self.switcher[1]()

注意要进行呼叫的()


1
投票

创建字典时,首先将这些方法称为=,这就是为什么您两次看到something的原因,然后将从方法返回的值分配给dict(在这种情况下,无,原因方法仅打印,不返回任何内容)。

© www.soinside.com 2019 - 2024. All rights reserved.