page contents

python代码逻辑分离,从解决if...else开始!

今天带大家学习Python如何利用对象(类)的特性来解决冗长的if...else条件判断

attachments-2024-07-sGD67SK566a70381827fd.jpg

今天带大家学习Python如何利用对象(类)的特性来解决冗长的if...else条件判断

前言

if...else...条件语句我相信学习python的童鞋们都喜欢用,例如下一面这一段

def func(param):

    if param == "cat":

        print("这是一只猫咪")

    elif param == "dag":

        print("这是一直狗狗")

    elif param == "pig":

        print("这是一只小猪")

    ...

    else:

      print("不知道是什么")

# 写很长的一段if语句来判断不同的情况

这段代码的使用场景是满足用户可以完成在不同场景进行对应的操作,对应后端的代码,你肯定能想到最简单的实现方式就是上面的if ... else 语句。但是随着你的场景不断的增加,你的if else 代码也跟着越来越长了。这带来的一个问题就是系统的可扩展性差,后续的维护会变得举步维艰。

对象特性

对象的三大特性:封装、继承、多态

封装:根据职责将属性和⽅法封装到⼀个抽象的类中; 增强代码的安全性

继承:实现代码的重⽤,相同的代码不需要重复的编写; 增强代码的可重用性

多态:不同的对象调⽤相同的⽅法,产⽣不同的执⾏结果; 增加代码的灵活度,增强代码的可扩展性

定义基础类

首先,我们将定义一个基础类,它将作为不同条件的父类。我们将在这个类中定义一个通用的方法,用于执行操作。

class Animal():

    def execute(self):

        pass

创建子类

接下来,我们将创建不同的类来表示不同的条件,每个类都会根据条件来执行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()方法进行了重写.

构建实例

我们可以用一个字典或者工厂方法来实现通过一个支付类型来找到对应的具体支付实例对象。

dict_name = {

     "cat": Cat(),

     "dog": Dog(),

     "pig": Pig(),

}

替换if else

创建一个函数,利用dict_name字段的关键字条件调用不的类执行execute()方法.

def func(anmial):

  dict_name.get(animal).execute()

# 执行函数

func("cat")

# 输出:say miao~miao~!

func("dog")

# 输出:say wang~wang~!

func("pig")

# 输出:say hang~hang~!

使用这种方式可以更好的将代码逻辑分离开来,比起冗长的if else,直接使用func函数是不是看起来简单多了。

通过使用对象特性,我们将条件判断从if...else语句中移出,代之以使用不同类来实现不同的操作。这种方法的好处是,我们可以在代码中更清楚地看到每个条件对应的操作,特别是对于那种需要判断很多中条件,提高了可读性和可维护性。

最后,我想告诉大家的是,并不是什么场景都非要用类的特性来解决 if...else 语句的。如果 if else 中的逻辑本来就很清晰,就没必要生搬硬套用上面的方法去解决了,对此我们需要根据实际业务去随机应变。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2024-07-29 10:50
  • 阅读 ( 59 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1470 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章