python学习 Day6

面向对象

面向对象就是将编程当成是一个事物,对外界来说,事务直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事情。

1、类和对象

类和对象的关系:用类去创建一个对象(用类去实例化一个对象)

1.1、理解

类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念。特征即使属性,行为既是方法。

1.2、对象

对象是类创建出来的真实事物,先有类,后有对象。

2、面向对象实现方法

2.1、定义类

image.png、

2.2、创建对象

对象又名实例 image.png

2.3、self

image.png

由于打印对象和打印self得到的内存地址相同,所以self指的是调用该函数的对象

3、添加和获取对象属性

对象属性即可在类外面添加和获取,也能在类里面添加和获取。

3.1、类外面添加对象属性

image.png

3.2、类外面获取对象属性

image.png

image.png

3.3、类里面获取对象属性

image.png image.png

4、魔法方法

在Pyhton中,XX()的函数叫做魔法方法,指的是具有特殊功能的函数

4.1、_init()_

作用:初始化对象 image.png

_init()_方法,在创建一个对象时默认被调用,不需要手动调用 _init(self)_中的self参数,不需要开发者传递,python解释器会自动把当前对象引用传递过去

4.2、带参数的_init()_

image.png

4.3、 _str()_方法

当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了_str()_方法,那么就会打印从在这个中return的数据 image.png

4.4、_del()_方法

当删除对象时,python解释器会默认调用_del()_方法 image.png

5、案例

5.1、烤地瓜

class SweetPatato(): #定义属性 def _init_(self): #焙烤时间 self.cook_time = 0 #状态 self.cook_state = '生' #调料列表 self.condiments = [] #判断当前地瓜状态 def cook(self,time): self.cook_time += time if 0 <= self.cook_time < 3: self.cook_state = '生的' elif 3<= self.cook_time < 5: self.cook_state = '半生不熟' elif 5<=self.cook_time<8: self.cook_state = '熟了' elif self.cook_time>=8: self.cook_time = '烤焦了' #添加调料 def add_condiments(self,condiments): self.condiments.append(condiments) #打印当前状态 def _str_(self): return f'这个地瓜已经烤了:{self.cook_time}分钟,状态是:{self.cook_state},调料有:{self.condiments}'

digua1 = SweetPatato() print(digua1) digua1.cook(2) digua1.add_condiments('辣椒面') print(digua1) digua1.cook(3) digua1.add_condiments('酱油') print(digua1)

5.2、搬家具进房子 #家具类 class Furniture():

▼
text
复制代码
def __init__(self,name,area): self.name = name self.area = area

#房子类 class room(): def init(self,address,area): #房屋地址 self.address = address #房屋总面积 self.area = area #剩余面积 self.free_area = area #家具列表 self.furniture = []

▼
text
复制代码
def __str__(self): return f'房屋坐落于:{self.address},面积有:{self.area}平方,剩余面积有:{self.free_area},家具有:{self.furniture}' def add_furniture(self,item): if self.free_area >= item.area: self.furniture.append(item.name) self.free_area -= item.area else: print('剩余面积不足无法放入')

bed = Furniture("双人床",6) sofa = Furniture('沙发',10)

jia1 = room('北京',100000) jia1.add_furniture(bed) print(jia1)

jia1.add_furniture(sofa) print(jia1)

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP