1. 基本概念
1.1 过程与函数
过程类似于函数,但只有执行没有返回值;
函数不仅能执行还能返回结果。
1.2 面向过程与面向对象
面向对象相对于面向过程,是更大的封装。
1)面向过程(怎么做?)
面向过程根据需求逐步实现,根据开发需求将某些功能独立的代码封装成一个个函数,最后完成代码后就逐步调用函数。
2)面向对象(谁来做?)
在完成某一个需求前,首先确定职责 —— 要做的事情(方法),
根据职责确定不同的对象,在 对象内部封装不同的 方法(多个),
最后完成的代码,就是顺序地让 不同的对象 调用 不同的方法。
2. 类与对象
类相当于图纸,对象就是根据图纸制造出来的实例。
类 是对一群具有 相同 特征 或者 行为 的事物的一个统称,是抽象的,不能直接使用。
特征被称为属性;
行为被称为方法。
对象是由类创建出来的一个具体存在,可以直接使用。
由哪一个类创建出来的对象,就拥有在 哪一个类中定义的属性、方法。
程序开发过程中先有类,再有对象。
类只有一个,对象可以有很多个。不同对象之间属性可能会各不相同。
类中定义了什么 属性和方法,对象中就有什么属性和方法,不可能多,也不可能少。
在程序开发中,要设计一个类,通常需要满足一下三个要素:
1)类名 这类事物的名字,满足大驼峰命名法
2)属性 这类事物具有什么样的特征
3)方法 这类事物具有什么样的行为
名词提炼法 分析 整个业务流程,出现的 名词,通常就是找到的类
2. 基本语法
在 python 中,变量、数据、函数都是对象。
dir内置函数:使用内置函数 dir 传入标识符 / 数据,可以查看对象内的所有属性及方法。
_ 方法名 _ 格式的方法是 Python 提供的 内置方法 / 属性,稍后会给大家介绍一些常用的内置方法 / 属性。
2.1 给类在外部添加属性
但是这种方法并不推荐使用,因为这种方式并没有针对类的代码进行修改,并没有把对象属性封装在对应的类的内部。
在编写代码时,若先调用方法再设置属性。如果在运行时,没有找到属性,程序会报错。
对象应该包含有哪些属性,应该封装在类的内部。
2.2 关于self
哪一个对象调用的方法,self就是哪一个对象的引用。
在类的外部,通过 变量名. 访问对象的 属性和方法。
在类封装的方法中,通过 self. 访问对象的 属性和方法。
在调用方法时并不需要调用self,在定义方法时第一个参数必须是self。
2.3 初始化方法
当使用 类名() 创建对象时,会自动执行以下操作:
为对象在内存中分配空间 —— 创建对象
为对象的属性 设置初始值 —— 初始化方法(init)
这个 初始化方法 就是 init 方法,init 是对象的内置方法。
init 方法是 专门 用来定义一个类 具有哪些属性的方法!
使用参数设置属性初始值(更加灵活):
2.4 内置方法和属性
1)del 方法
· 在 python 中:
当使用 类名() 创建对象时,为对象 分配完空间后,自动 调用 init 方法
当一个 对象被从内存中销毁 前,会 自动 调用 del 方法。
· 应用场景
init 改造初始化方法,可以让创建对象更加灵活。
del 如果希望在对象被销毁前,再做一些事情,可以考虑一下 del 方法。
· 生命周期
一个对象从调用 类名() 创建,生命周期开始。
一个对象的 del 方法一旦被调用,生命周期结束。
在对象的生命周期内,可以访问对象属性,或者让对象调用方法。
2)str 方法
注意: str 方法必须返回一个字符串
使用 print 输出对象变量,默认情况下,会输出这个变量引用的对象是由哪一个类创建的对象,以及在内存中的地址(十六进制表示)。
使用print函数打印某一个类的对象时,需要在控制台看到一些我们自定义的信息,就可以利用 str 方法。
注:内容转载自黑马程序员相关课程。