题目中用了类比而不是对比,因为我觉得我想要的并不是他们两者之间的差异,而是想在Python中找到一种方式能够完全代替C语言中的switch结构。

       之前使用字典功能模拟switch结构的时候总觉得有点缺憾,因为自己还要构造switch的default分支的模拟逻辑。

       其实,之前真是走了弯路了。在Python中,这种方式完全没有必要。字典中的get方法中可以使用默认的参数实现对switch语句的default分支模拟。这样,当想在Python中实现一段C语言中实现过的代码就简单多了。

       下面实现一个简单的switch结构的完整模拟:

#!/usr/bin/python


def Func1():

       print("function 1")


def Func2():

       print("function 2")


def Func3():

       print("function 3")


dict_data ={1:Func1,2:Func2}



defSwitchDemo(num):

       dict_data.get(num,Func3)()


for i inrange(1,10):

       SwitchDemo(i

       运行的结果如下:

E:\WorkSpace\01_programme_language\03_Python\OOP>pythonswitch.py

function 1

function 2

function 3

function 3

function 3

function 3

function 3

function 3

function 3

       从上面的运行结果可以看出,成功的通过前面叙述的方式实现了把Func3作为一个默认的分支。

       写代码久了觉得最初接触的编程语言教程内容的划分还是很合理的。最初接触的教程一般是从语法、类型、条件以及循环结构、数据结构等几个方面进行内容的安排。其实,我们用程序描述现实世界问题的时候用到的也不过就是这些,在加上合适的算法,整个程序的实现方式不管用什么语言都有一个相似的套路。这样,如果在一种语言平台上能够做到纯熟,那么其他的语言或许也能够触类旁通、一通百通。