zoukankan      html  css  js  c++  java
  • Python 知识要点:面向过程 和 面向对象

    过程和函数

    过程是早期的一个编程概念,类似于函数,只能执行,但是没有返回值。

    函数不仅能执行,还可以返回结果。

    面向过程(怎么做)

    把完成某一个需求的所有步骤,从头到尾逐步实现。
    根据开发需求,将某些功能独立的代码封装成一个又一个函数。
    最后完成的代码即使顺序的调用不同的函数。
    【特点】

    注重步骤与过程,不注重职责分工
    如果需求复杂,代码会变得很复杂
    开发复杂项目,没有固定的套路,开发难度大

    面向对象(谁来做)

    在完成某一个需求前,首先确定职责,即要做的事情。
    根据职责确定不同的对象,在对象内部封装不同的方法。
    最后完成的代码,就是顺序的让不同的对象调用不同的方法。
    【特点】

    注重对象和职责,不同的对象承担不同的职责
    更能应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
    需要在面向过程基础上,再学习一些面向对象的语法

    相比函数,面向对象是更大的封装,根据职责在一个对象中封装多个方法

    复制代码
    class Cat:

    def eat(self):
        # 哪个对象调用的方法,self就是哪个对象的引用
        print("%s吃鱼" % self.name)
    
    # 方法中没有使用类中的变量
    # 删除括号里的 self ,用 @staticmethod 声明为静态方法
    @staticmethod
    def drink():
        print("喝水")
    

    创建猫对象

    tom = Cat()

    可以使用 .属性名 利用赋值语句 就可以了

    tom.name = "Tom"
    tom.eat()
    tom.drink()
    print(tom)

    再创建一个猫对象

    lazy_cat = Cat()

    lazy_cat.name = "Jack"
    lazy_cat.eat()
    lazy_cat.drink()
    print(lazy_cat)

    原作者:颗粒成仓
    访问地址:https://www.cnblogs.com/dc2019/p/13179181.html

  • 相关阅读:
    783. Minimum Distance Between BST Nodes
    290. Word Pattern
    155. Min Stack
    HDU 6069 Counting Divisors (素数+筛法)
    BZOJ 2038 小Z的袜子(hose) (莫队算法)
    HDU 6127 Hard challenge (极角扫描)
    HDU 6096 String (AC自动机)
    LightOJ 1268 Unlucky Strings (KMP+矩阵快速幂)
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    ZOJ 3201 Tree of Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/wwyydd/p/14270844.html
Copyright © 2011-2022 走看看