一、面向对象编程:oop[object oriented programming],是一种python的编程思路,
解决软件复用的设计和编程方法。
1.面向过程:就是我们一开始学习的编程思路,按照解决问题的步骤去写代码
【根据业务逻辑去写代码】
在思考问题的时候,首先分析怎么按照步骤去实现,然后将问题解决拆解成若干个步骤,
并将这些步骤对应成方法一步一步的,最终完成
2.函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
3.面向对象:关注的是设计思维
总结:从计算机的角度来看:面向过程不适合做大项目
而面向对象适合做大项目的设计
二、类和对象
类:类是具有一组相同或者相似特征【属性】和行为【方法】的一系列【多个】对象的组合
对象:对象是实实在在的一个东西,类的实例化,具象化
类是对象的抽象化,对象是类的一个实例
创建一个对象【类的实例化】
规则格式:对象名=类名()
实例方法:在类的内部,使用def关键字来定义 第一个参数默认是
self【名字标识可以是其他的名字,但是这个位置必须被占用】
实例方法是归于 类的实例所有
属性:
类属性:在类的内部定义的变量【类属性】
实例属性:在方法内部定义的【通过类似于self.变量名】变量,是实例属性
总结 __init__
1.python 自带的内置函数,具有特殊的函义,使用双下划线包起来的【魔术方法】
2.是一个初始化的方法,用来定义实例属性和初始化数据的,在创建对象的时候自动调用,
不用手动去调用
3.利用传参的机制可以让我们定义的功能更加强大并且方便的类
self:self和对象指向同一个内存地址,可以认为self就是对象的引用
小结 self特点
1.self只有在类中定义,实例方法的时候才有意义,在调用时候不必传入相应的参数,
而是由解释器自动去指向
2.self的名字是可以更改的,可以定义成其他的名字,只是约定俗称的定义成了self
3.self指的是 类实例对象本身,相当于Java中this
魔术方法:python中内置好的特定方法,方法名是__xx__,在进行特定的操作是会自动
被调用,这些方法称之为魔术方法
常见的魔术方法:
__init__方法:初始化一个类,在创建实例对象为其赋值时使用。
__str__方法:在将对象转换成字符串str(对象)测试的时候,打印对象的信息。
__str__方法:创建并返回一个实例对象,调用了一次,就会得到一个对象。
__str__方法:获得已知对象的类(对象.__class__)。
__str__方法:对象在程序运行结束后进行对象销毁的时候调用这个方法,来释放资源。
__new__和__init__函数的区别:
1.__new__类的实例化方法 必须要返回该实例,否则对象就创建不成功
2.__init__用来做数据属性的初始化工作,也可以认为是实例的构造方法,接收类的实例
self并对其进行构造
3.__new__ 至少有一个参数是cls,代表是要实例化的类,此参数在实例化时由python解释器自动提供
4.__new__函数执行要早于__init__函数