Python中的字典與C語言中的switch結構類比
題目中用了類比而不是對比,因為我覺得我想要的並不是他們兩者之間的差異,而是想在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作為一個預設的分支。
寫程式碼久了覺得最初接觸的程式語言教程內容的劃分還是很合理的。最初接觸的教程一般是從語法、型別、條件以及迴圈結構、資料結構等幾個方面進行內容的安排。其實,我們用程式描述現實世界問題的時候用到的也不過就是這些,在加上合適的演算法,整個程式的實現方式不管用什麼語言都有一個相似的套路。這樣,如果在一種語言平臺上能夠做到純熟,那麼其他的語言或許也能夠觸類旁通、一通百通。