python学习 Day6
面向对象
面向对象就是将编程当成是一个事物,对外界来说,事务直接使用的,不用去管他内部的情况。而编程就是设置事物能够做什么事情。
1、类和对象
类和对象的关系:用类去创建一个对象(用类去实例化一个对象)
1.1、理解
类是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念。特征即使属性,行为既是方法。
1.2、对象
对象是类创建出来的真实事物,先有类,后有对象。
2、面向对象实现方法
2.1、定义类
、
2.2、创建对象
对象又名实例

2.3、self

由于打印对象和打印self得到的内存地址相同,所以self指的是调用该函数的对象
3、添加和获取对象属性
对象属性即可在类外面添加和获取,也能在类里面添加和获取。
3.1、类外面添加对象属性

3.2、类外面获取对象属性


3.3、类里面获取对象属性

4、魔法方法
在Pyhton中,XX()的函数叫做魔法方法,指的是具有特殊功能的函数
4.1、_init()_
作用:初始化对象

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

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

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

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)
