1.面向对象的基本介绍 |
2.类和对象 |
3.定义类 |
4.创建对象 |
5.添加和获得对象的属性 |
6.实例方法通过self获取对象属性 |
7.魔法方法(__init__) |
8.魔法方法(__str__) |
9.魔法方法(__del__) |
10.综合案例 |
面向对象:
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
面向对象的三大特性是指:封装、继承和多态
类和对象:
类:
类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在。 一个类可以找到多个对象
对象:
某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。 可以是直接使用的
定义类:
定义一个类,格式如下:
class 类名:
方法列表
demo:定义一个Hero类
# class Hero: # 经典类(旧式类)定义形式
class Hero(object): # 新式类定义形式
def info(self):
print("英雄各有见,何必问出处。")
创建对象:
对象名1 = 类名()
对象名2 = 类名()
对象名3 = 类名()
添加和获取对象的属性:
结果:
在方法内通过self获取对象属性:
魔法方法有参数的__init__()方法:
结果:
说明:
通过一个类,可以创建多个对象,就好比 通过一个模具创建多个实体一样 _
_init__(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么__init__(self)中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)
注意:
1). 在类内部获取 属性 和 实例方法,通过self获取;
2). 在类外部获取 属性 和 实例方法,通过对象名获取。
3). 如果一个类有多个对象,每个对象的属性是各自保存的,都有各自独立的地址;
4). 但是实例方法是所有对象共享的,只占用一份内存空间。类会通过self来判断是哪个对象调用了实例方法。
魔法方法__str__()方法:
结果:
说明:
在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法 当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__(self)方法,那么就会打印从在这个方法中 return 的数据 __str__方法通常返回一个字符串,作为这个对象的描述信息
魔法方法__del__()方法:
结果:
说明:
1). 创建对象后,python解释器默认调用__init__()方法;
2). 当删除对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法