1、 __init
"""init 指魔法方法 初始化对象 给对象赋予初始属性 无法更改
ps:__init__() 在创建对象时会自动调用 不需要手动调用
def __init__(self) 中的self参数 不需要传递 python解释器会自动把当前对象的引用进项传递传递"""
# class Wash():
# def __init__(self): #魔法方法
# pass
# self.height=800
# self.width=500
# def washer(self): #添加实例方法
# print(f"该洗衣机的高度是{self.height},宽度是{self.width}")
#
# haier=Wash()
# haier.washer()
#带参数的init
#一个类可以创建多个对象 给不同的对象设置为不同的初始化属性 可以直接传参数
class Washer():
def __init__(self,height,width):
self.height1=height
self.width1=width
def wash(self):
print(f"高度为{self.height1},宽度为{self.width1}")
haier1=Washer(800,600)
print('haier1.height1的属性',haier1.height1) #对象的属性
print("haier1的冰箱",end="")
haier1.wash()
haier2=Washer(1000,500)
print("haier2的冰箱",end="")
haier2.wash()
# class Cat():
# def __init__(self,name):
# self.name=name
# print(f"我叫{self.name}")
#
# tom=Cat('TOM')
# print(tom.name) #tom对象中的name属性
# #也可以通过在外部赋值与运直接添加属性
# tom.name1='米莱迪'
# print(tom.name1)
2、__str
""""__str__不是输出内存地址 而是输出return的返回值"""
class wash(object):
def __init__(self,height,width):
self.height = height
self.width = width
def __str__(self):
return '这是台洗衣机' #str一般放置解释说明的文字
def washer(self):
print(f"高度为{self.height},宽度为{self.width}")
wash1=wash(200,300)
print(wash1)
print(wash1.washer())
"""注意两者方法区别 若要备注前提说明文字 上述方法无法实现
case1:将参数放置__init__ case2:将参数放置__washer()
"""
# class Wash():
# def washer(self,weight,height):
# self.weight=weight
# self.height=height
# print(f"高度为{self.height},宽度为{self.weight}")
# def __str__(self):
# return "我洗的是这台洗衣机"
# haier=Wash()
# print(haier)
# haier.washer(200,300)
3、__del
# import sys,os
# class wash():
# def __init__(self,height,width):
# self.height=height
# self.width=width
# #print(f"高度为{self.height},宽度为{self.width}")
# def __del__(self):
# print(f"对象{self}已经被删除")
# print(sys.getsizeof(self))
# wash1=wash(200,300)
class wash3():
def washer3(self):
print("ad")
def __del__(self):
print("对象已经被删除")
washe4=wash3()