面向对象(OOP)
面向过程:把完成某一个需求的所有步骤从头到尾逐步实现。(开发复杂项目难度大适合操作系统,数据库服务器)
面向对象:上帝式思维方式,面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。
类和对象
类:一组具有相同特征或行为的一个统称。是一个抽象的概念,不能直接使用。
特征:被成为属性。
行为:被称为方法。
对象:一定是由类创建出来的一个一个具体存在的事物。
属性:静态的特征。
方法:动态的行为。
类和对象的关系:
1.先有类,后有对象。
2.一般类有一个,对象有多个。
3.类中定义了什么属性和方法,对象中也有什么属性和方法,不多也不少。
类的设计
类命名的方法:
1.类名 这类事物的名称,满足大驼峰命名法。
2.属性 这类事物具有什么样的特征。
3.方法 这类事物具有什么样的行为。
写对象,属性不加括号,方法加括号。
内置函数dir() 功能 :可以查看变量,对象,数据的所有属性和方法。
01
__new__
方法
创建对象时,会被自动调用
02
__init__
方法
对象被初始化时,会被自动调用
03
__del__
方法
对象被从内存中销毁前,会被自动调用
04
__str__
方法
返回对象的表述信息,print函数输出使用
定义一个简单的类:
class 类名:
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
类是一个更大的封装,可以把多个函数封装到类中。
方法的定义格式和函数的定义几乎一样
使用类模板创建对象。
对象变量=类名()
访问对象来调用方法
对象变量名.方法名()
函数和方法的区别
相同 1.都是封装代码的整体。
不同: 1.定义位置不同:方法在类内部
2.参数不同:方法有self参数
3.调用方法不同: 函数(参数) | 对象名.方法名(参数)
方法的调用顺序
1.定义类模板时,Python解释器会进入类模板内部扫描一遍,定义方法。但不会进入方法体的内部执行方法体中的代码。
2.当使用类模板创建对象,通过调对象名.方法名()调用方法时,才会进入方法内部执行代码。
3.方法中的代码执行完后,回到调用调用的地方,继续执行。
小点:
对象名就是一个变量名,保存当前的对象内存空间的引用。
一个类创建多个对象,多个对象变量的引用。每个对象的内存空间都互不干扰。
self参数
self参数保存当前对象,引用的地址。
在类的外部给对象增加属性。(必须先添加属性,再访问方法,否则造成属性不存在)
对象名.属性名=“ ” 对象名.name = “xx”
对象名.方法名()
属性添加到对象的内存空间中,self参数对象引用的地址,所以self参数可以访问到name属性。
小结:
1.self参数保存当前对象的引用地址,(哪个对象调用方法,self参数保存的就是哪个对象的引用地址)
2.在类内部访问属性:self.属性名 调用方法:self.方法名(参数)
3.在类的外部 访问属性:对象名.属性名 调用方法:调用名.方法名(参数)
初始化方法
def __init__(self):
self.属性名=""
__init__初始化方法主要用来初始化属性数据的。
使用类模板时,先给对象分配空间,再调用__init__方法初始化属性数据。
在使用类模板创建对象时,会自动调用。
异常,模块
异常:程序报错。
捕获异常格式:
try:
尝试执行的代码
except:
出现错误的处理
如果try下的代码报错,就会执行cxcept下的代码。
except (错误类型1,错误类型2):
报错类型是报错信息的最后一行的第一个单词。
捕获任意错误类型 except Exception as 别名:
else:在没有异常时才会执行
finally:无论有没有异常,都会执行。
抛出异常
创建exception异常类的对象,有参数:字符串
使用raise抛出异常, raise:exception
raise