python第八天

面向对象(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  

 

posted @ 2020-08-05 18:21  _年少无知  阅读(102)  评论(0)    收藏  举报