99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:Python都知道 ? 2023-09-12 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

創(chuàng)建子類

接下來,我們將創(chuàng)建不同的類來表示不同的條件,每個(gè)類都會(huì)根據(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~!")

在這里我們會(huì)用到對(duì)象的其中一個(gè)特性:繼承,我們繼承的基類Animal,并且對(duì)execute()方法進(jìn)行了重寫.

構(gòu)建實(shí)例

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

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

替換if else

創(chuàng)建一個(gè)函數(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ù)是不是看起來簡單多了。

通過使用對(duì)象特性,我們將條件判斷從if...else語句中移出,代之以使用不同類來實(shí)現(xiàn)不同的操作。這種方法的好處是,我們可以在代碼中更清楚地看到每個(gè)條件對(duì)應(yīng)的操作,特別是對(duì)于那種需要判斷很多中條件,提高了可讀性和可維護(hù)性。

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

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

    關(guān)注

    3

    文章

    4381

    瀏覽量

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70768
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86794
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

    前面討論了簡單的條件結(jié)構(gòu)。條件結(jié)構(gòu)用于實(shí)現(xiàn)需要判斷的情況,它以一個(gè)邏輯條件成立與否為條件,決定一個(gè)操作的執(zhí)行或不執(zhí)行,或執(zhí)行兩個(gè)不同的操作。
    發(fā)表于 11-02 11:27 ?2946次閱讀
    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í)行不同的動(dòng)作。條件語句通常在寫代碼時(shí),您總是需要為不同的決定來執(zhí)行不同的動(dòng)作。您可以在代碼中使用
    發(fā)表于 07-17 10:36

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

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

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

    的邏輯。?設(shè)計(jì)原理:?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 ?2679次閱讀

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

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

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

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

    詳解Python條件語句

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

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

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

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

    的if/else? 1. 提前 return 這是判斷條件取反的做法,代碼在邏輯表達(dá)上會(huì)更清晰,看下面代碼: if (condition) { // do something} else
    的頭像 發(fā)表于 06-22 10:01 ?1014次閱讀
    代碼如何優(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 ?840次閱讀

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

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

    python if 多條件并列判斷

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