八、Python之面向对象--概述

概述

    面向过程

             分析除解决问题的步骤,然后逐步实现。

             例如:婚礼筹办

                     -- 发请柬(选照片、措词、值作)

                     -- 宴席(场地、厨师、桌椅餐具,菜品)

                     -- 婚礼仪式(婚礼仪式流程,主持人)

             公式:程序 = 算法 + 数据结构

             优点:所有环节、细节自己掌控

             缺点:考虑所有细节,工作量大

    面向对象

              找出解决问题的人,然后分配职责

              例如:婚礼筹办

                     -- 发请柬 -- 摄影公司

                     -- 宴席 -- 酒店

                     -- 婚礼仪式 -- 婚庆公司

             公式:程序 = 对象 + 交互

             优点:

                    (1)思想层面

                                -- 更接近于人的思维方式

                                -- 有利于梳理归纳,分析解决问题

                    (2)技术层面

                                -- 高复用:对重复的代码进行封装,提高开发效率

                                -- 高扩展:增加新的功能,不修改以前的代码

                                -- 高维护:代码可读性好,逻辑清晰,结构完整

             缺点:考虑所有细节,工作量大

类和对象

    类:一个抽象的概念,即生活中的“类别”

    对象:类的具体实例,即归属于某个类别的“个体”

    类是创建对象的“摸板”

            -- 数据成员:名词类型的状态。

            -- 方法成员:动词类型的行为。

    类与类行为不同,对象与对象数据不同

    例如:学生是一个类,具有姓名,年龄的数据,也具有学习和工作的行为。张三是一个对象

               狗是一个类,具有类型,姓名,重量,也具有玩和叫的行为。拉布拉多是一个对象

    语法

        定义类

             代码:

class Dog:
    """文档说明"""
    def __init__(self,param):
        self.name = param

             说明:

                     -- 类名所有单词首字母大写

                     -- __init__也叫构造函数,创建对象时被调用

                     -- self 变量绑定的是被创建的对象,名称可以修改

        创建对象(实例化)

                 

dog1 = Dog("小黑")

    实例成员

        实例变量

                   语法:

                         定义 / 调用:对象.变量名

                   说明:

                        首次通过对象赋值为创建,再次赋值为修改

                        通常在构造函数(__init__)中创建

                        每个对象存储一份,通过对象地址访问

                   作用:描述所有对象的共有数据

                   __dict__:对象的属性,用于存储自身示例变量的字典

        实例方法

                   语法:

                        定义:def 方法名称(self,参数列表):

                        调用:对象地址.实例方法名(参数列表),不建议通过类名访问实例方法

                   说明:

                         至少有一个形参,第一个参数绑定调用这个方法的对象,一般命明为”self“

                         无论创建多少对象,方法只有一份,并且被所有对象共享

                   作用:表示对象行为

    类成员

        类变量

        类方法

                   语法:

                         定义:

@classmethod
def fun01(cls,param):
    pass

                 调用:类名.方法名(参数列表)

                            不建议通过对象访问类方法

                 说明:

                             至少有一个形参,第一个形参用于绑定类,一般命名为”cls”

                             使用@classmethod修饰的目的是调用方法时可以隐式传递类对象

                             类方法中不能访问实例成员,实例方法可以访问类成员

                 作用:操作类变量

    静态方法

                 语法:

                         定义:

@staticmethod
def fun02(param):
    pass

                         调用:类名.方法名(参数列表),不建议通过对象访问静态方法

                 说明:

                          使用@staticmethod 修饰的目的式该方法

                          静态方法不能访问实例成员和类成员

                 作用:定义常用的工具函数

发布了39 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/chiaotien/article/details/104276041