day9①
python自学,笔记分享
面向对象编程
串联在一个代码里!!
'''面向对象:类(图纸)和对象(洗衣机)
用类创建(实例化)对象
先有类后有对象
一个类可以创建多个对象
'''
# 需求——洗衣机:能洗衣服
# 1、定义洗衣机类
class Washer():
def __init__(self, widt, high): # 自动调用
# 添加实例属性
#self.widt = 600
#self.high = 900
self.widt = widt # 形参接收数据,数据可以不固定
self.high = high
def __del__(self): # 当删除对像的时候,这个被自动调用
print(f'{self}对象已经删除')
def wash(self): # self指的是调用该函数的对象
print('能洗衣服')
print(self)
def print_info(self):
print(self.width)
print(f'洗衣机的宽度是{self.width}')
print(f'洗衣机{self.widt},洗衣机的{self.high}') # 只是调用,调用的是等号左边的
print(f'洗衣机的{self.high}')
# 打印名字会出现他的内存地址,但是写了str魔法方法后,打印名字就会出现return里面的内容
def __str__(self):
return '这是海尔洗衣机的说明书'
# 2、创建对象
haier1 = Washer(10, 20) # 传入数据
# 3、验证成功(打印haier\使用wash功能)
haier1.wash() # 怎么使用类中的函数--实例方法\对象方法--对象名.wash()
haier2 = Washer(2, 222) # 一个类可以定义两个对象
haier2.wash() # 手动调用,init魔法方法不用这句
# 在类外面添加属性,获取属性
haier1.width = 500 # 名字完全自定义就可以
haier1.height = 800
# 在类外面获取对象属性
print(f'haier1的宽度是{haier1.width}')
print(f'haier1的高度是{haier1.height}')
# 在类里面获取对象属性
haier1.print_info()
del haier1 # 就算不写这行,del也会执行
'''魔法方法:具有特殊功能的函数: _xx_()'''