知识点:面向对象介绍;类和对象概率;定义类和对象;实列方法和属性;__init__方法;self;魔术方法
一:面向对象介绍
概述:1.面向过程;根据业务逻辑从上到下写代码 2.函数式:将某功能功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 3.面向对象编程:将数据与和函数绑定到一起,进行封装,这样能够更快速的开发程序,减少重复代码的重写过程。(从1到3逐步优化)
面向过程:在思考问题的时候,首先分析怎么按照步骤去实现,然后将问题解决拆解若干个步骤,最终完成功能
面向对象:关注的是设计的思维
举例:小明出差--什么时间--买什么票---酒店---回程时间 ----亲力亲为【面向过程】
面向过程不足:小明没有更多的精力去考虑别的事情 ;关注点为怎么做
boos---秘书【小明需要考虑的事情】。。。。【面向对象】
boos有更多的精力去处理其他的事情,创造更多价值 ;关注点为谁去做
从计算机角度来看:面向过程不合适做大项目;面向对象适合做更大的设计
二:类和对象
概念:类:是一个模板,模板里可以包含多个函数,函数里实现一些功能
对象:根据模板创建的实,通过实例对象可以执行类中的函数;对象是实实在在的一个对象,类的实例化,具象化
类是具有一组相同或者相似特征【属性】和行为的一系列对象的集合;类是对象的抽象化,而类是对象的一个实例
类的组成部分:类名;类的属性;类的方法
三:定义类和对象
四:实例方法与属性
实例方法:在类的内部,使用def关键字可以定义一个试了方法,与一般函数定义不同,类的方法必须包含参数self,且为第一个参数
属性:类里面定义的变量。定义在类里面,方法外面的属性称之为类属性,定义在方法里面使用 self引用的属性称之为实例属性
def __init__(self):
self.name = '旺财'
五:init方法
5.1:__init__()方法,初始化方法,实例对象的时候自动调用,完成一些初始化设置
5.2:init传参
背景:如果init方法里面的属性固定了,每个类创建出来的对象属性都一样,这个时候是不是考虑将属性当做参数在实例化对象的时候传进去,让类更通用
5.3总结__init__
1,python自带的内置函数,具有特殊的函数,使用双下划线包起来的【魔术方法】
2,是一个初始化的方法,用来定义实例属性和初始化数据,在创建对象时自动调用
3,利用传参的机制可以让我们定义功能更加强大且方便的类
六 :理解self
6.1什么是self:self和对象指向同一个内存地址,可以认为self就是对象的引用
6.2self传参问题:所谓的self,可以理解成对象自己。某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self。
6.3:小结 self特点
1.self只有在类中定义实例方法的时候才有意义,在调用时不必传入相应的参数,而是由解释器自动的去指向
2.self的名称是可以更改的,可以定义其他的名字,只是约定成俗的定义成 self
3.self指的是类实例本身,相当于java this
七:魔术方法
概述:在python中,有一些内置好的特定方法,方法名是__xx__,在进行特点的操作时会自动被调用
常见的几种魔术方法
__init__:初始化一个类,在创建对象为其赋值
__str__:在将对象转换成字符串 str(对象)测试的时候,打印对象的信息
__new__:创建并返回一个实例对象,调用一次,就会得到一个对象
__class__:获得已知对象的类(对象.__class__)
__del__:对象在程序运行结束后进行对象销毁的时候调用这个方法,来释放资源
new和init函数的区别:new:类的函数实例化方法,必须返回改实例,否则创建不成功
init:用来做数据属性的初始化工作,也可以认为是实例的构造方法,接受 类的实例,并对其进行构造
*new函数执行要早于init函数
案列:
课后实操:



