0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何解決冗長的if...else條件判斷(下)

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:Python都知道 ? 2023-09-12 17:06 ? 次閱讀

創(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()方法進(jìn)行了重寫.

構(gòu)建實例

我們可以用一個字典或者工廠方法來實現(xiàn)通過一個支付類型來找到對應(yīng)的具體支付實例對象。

dict_name = {
     "cat": Cat(),
     "dog": Dog(),
     "pig": Pig(),
}

替換if else

創(chuàng)建一個函數(shù),利用dict_name字段的關(guān)鍵字條件調(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)不同的操作。這種方法的好處是,我們可以在代碼中更清楚地看到每個條件對應(yīng)的操作,特別是對于那種需要判斷很多中條件,提高了可讀性和可維護(hù)性。

最后,我想告訴大家的是,并不是什么場景都非要用類的特性來解決 if...else 語句的。如果 if else 中的邏輯本來就很清晰,就沒必要生搬硬套用上面的方法去解決了,對此我們需要根據(jù)實際業(yè)務(wù)去隨機(jī)應(yīng)變。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62720
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4796

    瀏覽量

    68706
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84786
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中if語句、if-else語句和switch語句詳解

    在C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句。
    發(fā)表于 08-18 16:36 ?1.2w次閱讀
    C語言中if語句、if-<b class='flag-5'>else</b>語句和switch語句詳解

    C語言條件結(jié)構(gòu)的使用方法

    前面討論了簡單的條件結(jié)構(gòu)。條件結(jié)構(gòu)用于實現(xiàn)需要判斷的情況,它以一個邏輯條件成立與否為條件,決定一個操作的執(zhí)行或不執(zhí)行,或執(zhí)行兩個不同的操作。
    發(fā)表于 11-02 11:27 ?2288次閱讀
    C語言<b class='flag-5'>條件</b>結(jié)構(gòu)的使用方法

    Linux Shell系列教程之Shell判斷 if else用法

      if ... elif ... else ... fi 格式  下面我就分別就這幾種格式來為大家詳細(xì)介紹?! ∫?、Shell判斷語法之if ... else 格式  if ...
    發(fā)表于 09-03 14:20

    JavaScript 【4】 條件語句

    JavaScript if...Else 語句條件語句用于基于不同的條件來執(zhí)行不同的動作。條件語句通常在寫代碼時,您總是需要為不同的決定來執(zhí)行不同的動作。您可以在代碼中使用
    發(fā)表于 07-17 10:36

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS語言渲染控制if/else條件渲染

    ArkTS提供了渲染控制的能力。條件渲染可根據(jù)應(yīng)用的不同狀態(tài),使用if、elseelse if渲染對應(yīng)狀態(tài)的UI內(nèi)容。說明:從API version 9開始,該接口支持在ArkTS
    發(fā)表于 08-21 14:29

    FPGA學(xué)習(xí)系列:if-else與case

    的邏輯。?設(shè)計原理:?if...else 條件語句的作用是根據(jù)指定的端盤條件是否滿足來確定下一步要執(zhí)行的操作他們的書寫格式如下(1)if (條件語句) ????(2)if(
    的頭像 發(fā)表于 06-01 16:59 ?1.2w次閱讀
    FPGA學(xué)習(xí)系列:if-<b class='flag-5'>else</b>與case

    python判斷語句的詳細(xì)說明

    python判斷語句:if 1. 簡單小例子 如果滿足條件 A,則執(zhí)行代碼塊 a,否則執(zhí)行代碼塊 b。類似這樣的控制流程語句,稱之為條件語句。 它的基本形式是 if 判斷
    的頭像 發(fā)表于 02-25 16:22 ?2376次閱讀

    利用Java 8的Function接口來消滅if...else

    在開發(fā)過程中經(jīng)常會使用if...else...進(jìn)行判斷拋出異常、分支處理等操作。這些if...else...充斥在代碼中嚴(yán)重影響了代碼代碼的美觀,這時我們可以利用Java 8的Function接口來消滅if...
    的頭像 發(fā)表于 04-21 10:23 ?2706次閱讀

    解鎖新姿勢:干掉過多的if-else

    這點非常容易理解,就是說在業(yè)務(wù)邏輯里面,先把不符合條件的給先過濾掉,而不是層層嵌套if-else判斷
    的頭像 發(fā)表于 11-12 10:01 ?665次閱讀

    詳解Python條件語句

    在 Python 中,if...else 是一種條件語句,可以根據(jù)給定的條件執(zhí)行不同的操作。這個語句通常用于控制程序的流程。
    的頭像 發(fā)表于 04-19 15:39 ?830次閱讀

    在Python中的if...else條件語句介紹

    在 Python 中,if...else 是一種條件語句,可以根據(jù)給定的條件執(zhí)行不同的操作。這個語句通常用于控制程序的流程。
    的頭像 發(fā)表于 04-19 15:43 ?1186次閱讀

    代碼如何優(yōu)化掉多余的if/else?

    的if/else? 1. 提前 return 這是判斷條件取反的做法,代碼在邏輯表達(dá)上會更清晰,看下面代碼: if (condition) { // do something} else
    的頭像 發(fā)表于 06-22 10:01 ?790次閱讀
    代碼如何優(yōu)化掉多余的if/<b class='flag-5'>else</b>?

    Python條件條件語句

    )。if...else...搭配,若if語句為False,不執(zhí)行if的語句塊,而去else的語句塊。 1 #if...else...語句
    的頭像 發(fā)表于 09-12 16:45 ?614次閱讀

    何解冗長if...else條件判斷(上)

    if...else...條件語句我相信學(xué)習(xí)python的童鞋們都喜歡用,例如下一面這一段 def func ( param ): if param == "cat" : print ( "這是一只
    的頭像 發(fā)表于 09-12 17:03 ?698次閱讀

    python if 多條件并列判斷

    Python中的if語句允許我們根據(jù)條件執(zhí)行不同的代碼塊。有時候我們需要同時判斷多個條件是否滿足,并根據(jù)結(jié)果執(zhí)行不同的代碼塊。在這篇文章中,我們將會進(jìn)行詳盡、詳實且細(xì)致的介紹。 首先,我們來看一
    的頭像 發(fā)表于 11-21 16:40 ?1874次閱讀