Python之面向对象基础

目录

一、面向过程和面向对象基本概念

二、类和对象的概念

三、定义简单类

四、初始化方法


面向对象

             面向对象(OOP)基本概念——Object Oriented Programming

            过程和函数

            ✦过程是早期的一个编程概念

            ✦过程类似于函数,只能执行,但是没有返回值

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

一、面向过程和面向对象基本概念

               ①面向过程——怎么做

            ✦把完成某一个需求的所有步骤从头到尾逐步实现

            ✦根据开发需求,将某些功能独立的代码封装成一个又一个的函数

            ✦最后完成的代码,就顺序地调用不同的函数

            特点:

            ✦注重步骤与过程,不注重职责分工

            ✦如果需求复杂,代码会变得很复杂

            ✦开发复杂项目,没有固定的套路,开发难度大

 

             ②面向对象——谁来做

            ✦在完成某一个需求前,首先确定职责——要做的事情(方法)

            ✦根据职责确定不同的对象,在对象内部封装不同的方法(多个)

            ✦最后完成的代码,就顺序地让不同地对象调用不同的方法

            特点:

            ✦注重对象和职责,不同的对象承担不同的职责

            ✦更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路

            ✦需要在面向过程基础上,再学习一些面向对象的语法

二、类和对象的概念

          1、类——负责创建对象的

               类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用

            ✦特征被称为 属性

            ✦行为被称为 方法

          2、对象

            对象是由类创建出来的一个具体存在,可以直接使用。由哪一个类创建出来的对象,就拥有在哪一个类中定义的:

            ✦属性

            ✦方法

          3、类的设计

              在程序开发中,要设计一个类,通常需要满足三个要素:

            ✦类名 这类事物的名字,满足大驼峰命名法

            ✦属性 这类事物具有什么样的特征

            ✦方法 这类事物具有什么样的行为

            

            大驼峰命名法

            CapWords

            ✦每一个单词的首字母大写

            ✦单词与单词之间没有下划线

 

            类名的确定

            ✦名词提炼法 分析整个业务流程

            ✦出现的名词,通常就是找到的类

 

            属性和方法的确定

            ✦对 对象的特征描述,通常可以定义成属性

            ✦对象具有的行为(动词),通常可以定义成 方法

          4、面向对象基础语法

          dir内置函数

          在Python中可以使用一两个方法验证:

            ✦在标识符/数据后输入一个“ . ” ,PyCharm会提示该对象能够调用的方法列表

            ✦使用内置函数dir 传入标识符/数据,可以查看对象内的所有属性方法

            提示:_方法名_格式的方法是Python提供的内置方法/属性

Python之面向对象基础

三、定义简单类

          1、定义只包含方法的类

              在python中定义一个只包含方法的类,语法格式如下:

                      Python之面向对象基础

            注意:类名的命名规则要符合大驼峰命名法

          2、创建对象

                当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:

                                        对象变量 = 类名()

案例一:

# 定义一个 猫 类
class Cat:
    # 封装 吃 喝
    def eat(self):
        print("小猫爱吃鱼")

    def drink(self):
        print("小猫要喝水")


# 根据猫类 创建 猫 对象
tom = Cat()
tom.eat()
tom.drink()
print(tom)

执行结果:

Python之面向对象基础

          3、使用self在方法内部输出每一只猫的名字

                 由哪一个对象调用的方法,方法内的self就是哪一个对象的引用

                 在类封装的方法内部,self就表示当前调用方法的对象自己

                  在方法内部:

                        ✦可以通过self访问对象的属性

                        ✦也可以通过self调用其他对象方法

案例二:

class Cat:
    # 封装 吃 喝
    def eat(self):
        print("%s猫爱吃鱼"% self.name)

    def drink(self):
        print("%s猫要喝水"% self.name)


# 根据猫类 创建 猫 对象
tom = Cat()
tom.name = "汤姆"
tom.eat()
tom.drink()

执行结果:

Python之面向对象基础

四、初始化方法

          提示:

            ✦在日常开发中,不推荐在类的外部给对象增加属性。如果在运行时,没有找到属性,程序会报错

            ✦对象包含哪些属性,应该封装在类的内部

          1、初始化方法

                    当使用类名()创建对象时,会自动执行以下操作 

                        ✦为对象在内存中分配空间——创建对象--__new__

                        ✦为对象的属性设置初始值——初始化方法(__int__)

                      这个初始化方法就是__int__方法,__int__是对象的内置方法。__int__方法是专门用来定义一个类具有哪些属性的方法!

          2、在初始化方法内部定义属性

                    在__int__方法内部使用self.属性名 = 属性的初始值 就可以定义属性。定义属性后,再使用Cat类创建的对象,都会拥有该属性

          3、改造初始化方法——初始化得同时设置初始值

                在开发中,如果希望在创建对象的同时,就设置对象的属性,可以对__int__方法进行改造

            ✦把希望设置的属性值,定义成__int__方法的参数

            ✦把方法内部使用 self.属性 = 形参  接收外部传递的参数

            ✦在创建对象时,使用类名(属性1,属性2)调用

案例三:

class Cat:
    # 初始化方法: 给对象来定义属性
    def __init__(self, new_name, color):  # 创建对象的时候,需要调用 __init__ 方法,定义对象的属性!
        print("初始化方法!")
        self.name = new_name  # 创建对象的时候, 给这个对象 赋予一个  name 的属性,值是 "Tom"
        self.color = color

    def eat(self):
        print("{}爱吃鱼".format(self.name))


tom = Cat("Tom", "bule")
print(tom.name)
print(tom.color)
tom.eat()
coffee = Cat("Garfield", "orange")
print(coffee.name)

执行结果:

Python之面向对象基础

上一篇:mysql优化


下一篇:git config 配置