如何用Python字典实现类似switch case的函数调用机制?

2026-05-22 05:311阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计393个文字,预计阅读时间需要2分钟。

如何用Python字典实现类似switch case的函数调用机制?

Python中没有switch...case结构,但可以通过字典实现类似的功能,而不使用if...elif。下面是一个简单的示例,通过不同的key调用不同的方法:

pythondef func1(): print(执行func1)

def func2(): print(执行func2)

def func3(): print(执行func3)

def switch_case(key): switcher={ '1': func1, '2': func2, '3': func3 } # 获取函数,如果key不存在则返回None func=switcher.get(key) if func: func()

测试switch_case('1') # 输出:执行func1switch_case('2') # 输出:执行func2switch_case('4') # 输出:无

在这个例子中,我们定义了三个函数func1、func2和func3,它们分别对应不同的操作。通过switch_case函数,根据传入的key调用对应的函数。如果传入的key不存在,则不执行任何操作。

如何用Python字典实现类似switch case的函数调用机制?

python中没有swich..case,若要实现一样的功能,又不想用if..elif来实现,可以充分利用字典进行实现

主要是想要通过不同的key调用不同的方法,在学习过程中,发现不管输入的key是什么,只要字典中存在输出内容,每次都会输出,这跟自己需要的功能有出入。

通过调试后,发现问题主要出现在key值对应的value的方法名有没有带()有很大的关系,如下:

不管bb中的number填写的是多少,总是会输出123

如果把cs()改为cs,那么只有在调用2的时候才会输出123;或者改下return的方法,可以选择不加()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计393个文字,预计阅读时间需要2分钟。

如何用Python字典实现类似switch case的函数调用机制?

Python中没有switch...case结构,但可以通过字典实现类似的功能,而不使用if...elif。下面是一个简单的示例,通过不同的key调用不同的方法:

pythondef func1(): print(执行func1)

def func2(): print(执行func2)

def func3(): print(执行func3)

def switch_case(key): switcher={ '1': func1, '2': func2, '3': func3 } # 获取函数,如果key不存在则返回None func=switcher.get(key) if func: func()

测试switch_case('1') # 输出:执行func1switch_case('2') # 输出:执行func2switch_case('4') # 输出:无

在这个例子中,我们定义了三个函数func1、func2和func3,它们分别对应不同的操作。通过switch_case函数,根据传入的key调用对应的函数。如果传入的key不存在,则不执行任何操作。

如何用Python字典实现类似switch case的函数调用机制?

python中没有swich..case,若要实现一样的功能,又不想用if..elif来实现,可以充分利用字典进行实现

主要是想要通过不同的key调用不同的方法,在学习过程中,发现不管输入的key是什么,只要字典中存在输出内容,每次都会输出,这跟自己需要的功能有出入。

通过调试后,发现问题主要出现在key值对应的value的方法名有没有带()有很大的关系,如下:

不管bb中的number填写的是多少,总是会输出123

如果把cs()改为cs,那么只有在调用2的时候才会输出123;或者改下return的方法,可以选择不加()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。