一、面向对象实现方法
- 语法
#定义类
class 类名():
代码
......
#创建对象
对象名 = 类名()
#调用类方法
对象名.方法名()
- 体验
class object():
def function1(self):
print('这是一个类。')
obj = object()
obj.function1()
#这是一个类。
二、添加和获取对象属性
1、类外面添加对象属性
- 语法:对象名.属性名 = 值
haier.width = 500
haier.heigh = 400
2、类外面获取对象属性
- 语法:对象名.属性名
print(f'haier洗衣机的宽度是{haier.width}')
print(f'haier洗衣机的长度是{haier.heigh}')
3、类里面获取对象属性
- 语法:self.属性名
class Washer():
def function(self):
print(f'洗衣机的宽度是{self.width},洗衣机的长度是{self.heigh}')
haier = Washer()
haier.width = 500
haier.heigh = 400
三、魔法方法
- __init__():用来初始化对象。
class Washer():
def __init__(self):
self.width = 500
self.heigh = 400
def function(self):
print(f'洗衣机的宽度是{self.width},洗衣机的长度是{self.heigh}')
- 带参__init__()
class Washer():
def __init__(self, width, heigh):
self.width = width
self.heigh = heigh
def function(self):
print(f'洗衣机的宽度是{self.width},洗衣机的长度是{self.heigh}')
haier1 = Washer(400, 500)
haier1.function()
- __str__():当使用print()打印对象的时候,默认会打印对象的内存地址。如果定义了该方法,那么就会打印这个方法return的数据。
class Washer():
def __str__(self):
return '这是对象Washer。'
haier = Washer()
print(haier)
- __del__():当删除对象时,Python会默认调用该方法。
class Washer():
def __del__(self):
return '这是对象已经删除'
haier = Washer()
print(haier)
四、应用案例
- 搬家具
#设置家具
class Furniture():
def __init__(self, name, area):
self.name = name
self.area = area
class Home():
def __init__(self, address, area):
self.address = address
self.area = area
self.free_area = area
self.furniture = []
#打印对象信息
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('家具太大,剩余面积不足,无法容纳')
jia1 = Home('北京', 300)
bed = Furniture('双人床', 6)
sofa = Furniture('沙发', 10)
jia1.add_furniture(bed)
jia1.add_furniture(sofa)
print(jia1)