自学整理记录,大神见笑
面向对象的基本概念
面向过程---怎么做
- 把完成某一个需求的所有步骤从头到尾逐步实现;根据需求将功能独立的代码封装成多个函数;完成代码就是顺序调用不同函数
- 特点:注重步骤和过程,不注重分工职责;需求复杂影响代码复杂
面向对象---谁来做
- 完成某一需求前确定职责;根据职责确定对象,对象内部封装多个方法;完成代码就是顺序的让不同对象调用不同方法
- 特点:注重对象和职责,分工明确;适合复杂需求
类和对象
类
- 类就是对一群具有相同特征和行为的事物的统称,不能直接使用;特征就是属性,行为就是方法
- 类是负责创建对象的
对象
- 对象是由类创建出来的具体存在
- 由哪个类创建,就拥有哪一个类的属性和方法
- 注:先有类,后有对象
类和对象关系
- 类创建对象
- 类只有一个,对象有多个
- 不同对象间的属性和方法可能不同
- 对象拥有的属性和方法都是类所拥有的
- 先有类,后有对象
类的设计
- 类名要满足大驼峰命名
- 三要素:类名,属性,方法
面向对象基本语法
__dir__内置函数
- 变量,数据,函数都是对象
- Python中确定是否是对象的方法:
1.在标识符/数据后输入一个.,然后按下Tab键,在iPython中会提示该对象能够调用的方法列表
2.使用内置函数dir传入标识符/数据,查看对象内的所有属性和方法 - 注:__方法名__格式的方法是Python提供的内置方法/属性
序号 | 方法名 | 类型 | 作用 |
---|---|---|---|
01 | __new__ | 方法 | 创建对象时,会自动调用 |
02 | __init__ | 方法 | 对象被初始化时,会被系统调用 |
03 | __del__ | 方法 | 对象从内存被销毁前,会自动调用 |
04 | __str__ | 方法 | 返回对象的描述信息,print函数输出使用 |
定义简单的类
- 一个类中封装多个方法,通过类创建对象,然后用对象就可以直接调用这些方法
- 定义格式:
class 类名:
def 方法1(self,参数列表):
pass
def 方法2(self,参数列表):
pass
- 参数的第一个参数必须是self
创建对象
- 语法格式如下:
对象变量 = 类名()
- print直接打印对象变量,输出的是对象的引用
- 技巧:格式化字符串%d,显示十进制;%x,显示十六进制
方法中的self参数
- 对象属性的封装应该封装在类的内部
- 可以在类的外部直接通过.设置一个属性,但不推荐使用,因为如果在调用方法后添加属性,属性还在方法中使用,则会报错NameError
- 哪一个对象调用,self就代表哪一个对象的引用
- 在方法内部,可以用self.访问对象的属性或者调用对象的其他方法
初始化方法
- 当类名()调用时,会自动执行下列操作:
1.在内存中为对象分配空间---创建对象
2.为对象的属性设置初始值---初始化方法(init) - 这个初始化方法是__init__,该方法是对象的内置方法
初始化方法内部定义属性
1.把希望设置的属性值定义在__init__方法的参数中
2.在方法内部使用self.属性 = 形参接收外部传递的参数
3.在创建对象时,使用类名(属性1,属性2...)调用
- 之后该类创建的对象都会具有该属性
class Cat:
def __init__(self,name):
print("初始化方法 %s" % name)
self.name = name
...
tom = Cat("Tom")
...
lazy_cat = Cat("大懒猫")
内置方法和属性
__del__方法
- 对象在内存中被销毁前调用的方法
__str__方法
- 该方法必须返回字符串
- print(对象),默认会打印对象的引用,但是这个类中有__str__方法,那么print会打印该方法返回的字符串
网友评论