創(chuàng)建子類
接下來,我們將創(chuàng)建不同的類來表示不同的條件,每個類都會根據(jù)條件來執(zhí)行execute()方法來做某些事。
class Cat(Animal):
def execute(self):
print("say miao~miao~!")
class Dog(Animal):
def execute(self):
print("say wang~wang~!")
class Pig(Animal):
def execute(self):
print("say hang~hang~!")
在這里我們會用到對象的其中一個特性:繼承,我們繼承的基類Animal
,并且對execute()
方法進行了重寫.
構建實例
我們可以用一個字典或者工廠方法來實現(xiàn)通過一個支付類型來找到對應的具體支付實例對象。
dict_name = {
"cat": Cat(),
"dog": Dog(),
"pig": Pig(),
}
替換if else
創(chuàng)建一個函數(shù),利用dict_name
字段的關鍵字條件調(diào)用不的類執(zhí)行execute()
方法.
def func(anmial):
dict_name.get(animal).execute()
# 執(zhí)行函數(shù)
func("cat")
# 輸出:say miao~miao~!
func("dog")
# 輸出:say wang~wang~!
func("pig")
# 輸出:say hang~hang~!
使用這種方式可以更好的將代碼邏輯分離開來,比起冗長的if else,直接使用func函數(shù)是不是看起來簡單多了。
通過使用對象特性,我們將條件判斷從if...else語句中移出,代之以使用不同類來實現(xiàn)不同的操作。這種方法的好處是,我們可以在代碼中更清楚地看到每個條件對應的操作,特別是對于那種需要判斷很多中條件,提高了可讀性和可維護性。
最后,我想告訴大家的是,并不是什么場景都非要用類的特性來解決 if...else 語句的。如果 if else 中的邏輯本來就很清晰,就沒必要生搬硬套用上面的方法去解決了,對此我們需要根據(jù)實際業(yè)務去隨機應變。
-
函數(shù)
+關注
關注
3文章
4346瀏覽量
63022 -
代碼
+關注
關注
30文章
4837瀏覽量
69127 -
python
+關注
關注
56文章
4811瀏覽量
85076
發(fā)布評論請先 登錄
相關推薦
C語言條件結構的使用方法
![C語言<b class='flag-5'>條件</b>結構的使用方法](https://file1.elecfans.com/web2/M00/AC/0B/wKgaomVDG9SAT-fxAAA1lh0RHc4637.jpg)
Linux Shell系列教程之Shell判斷 if else用法
JavaScript 【4】 條件語句
HarmonyOS/OpenHarmony應用開發(fā)-ArkTS語言渲染控制if/else條件渲染
FPGA學習系列:if-else與case
![FPGA學習系列:if-<b class='flag-5'>else</b>與case](https://file.elecfans.com/web1/M00/52/22/o4YBAFsQ7FWASRGRAAAmv47MpkY394.png)
python判斷語句的詳細說明
利用Java 8的Function接口來消滅if...else
解鎖新姿勢:干掉過多的if-else!
詳解Python條件語句
在Python中的if...else條件語句介紹
代碼如何優(yōu)化掉多余的if/else?
![代碼如何優(yōu)化掉多余的if/<b class='flag-5'>else</b>?](https://file1.elecfans.com/web2/M00/8A/04/wKgaomSOq1OAUwR7AAJ9irjWfLg921.jpg)
評論