#需求:洗衣机,功能:能洗衣服#1、定义洗衣机类
"""class 类名():
代码"""
classWasher():defwash(self):print("能洗衣服")#2 创建对象#对象名 = 类名()
haier =Washer()#3、验证成果#打印haier对象
print(haier)#使用wash功能--实例方法/对象方法 --对象名.wash()
haier.wash()#类:洗衣机,功能:能洗衣服
classWasher():defwash(self):print("洗衣服")print(self)
haier1=Washer()print(haier1) #<__main__.washer object at>
#haier.wash() #洗衣服 <__main__.washer object at>#由于打印对象和打印self得到的内存地址是一样的,所以self指的是调用该函数的对象
haier2=Washer()print(haier2)#一个类可以创建多个对象;多个对象都调用函数的时候,self地址是不相同的
添加和获取对象属性
属性即是特征,比如:洗衣机的宽度、高度、重量
对象的属性既可以在类外面添加和获取,也能在类里面添加和获取1类外面添加对象属性#语法 对象名.属性名 = 值 dg:haier.width = 500
classWasher():defwash(self):print("洗衣服")
haier1=Washer()#添加对象属性
haier1.width = 400haier1.height= 500
#类外面获取对象属性#获取属性 对象名.属性名
print("洗衣机的宽度是:%s"%haier1.width) #洗衣机的宽度是:400
print("洗衣机的高度是:%s"%haier1.height) #洗衣机的高度是:500
print("--------------------------------")#类里面获取对象属性#语法: self.属性名
classmyWasher():defwash(self):print("洗衣服")#获取对象属性
defprint_info(self):#self.属性名
#print(self.width)
print("洗衣机的宽度是:%s"%self.width)print("洗衣机的高度是:%s"%self.height)
my_haier=myWasher()#添加属性
my_haier.width = 400my_haier.height= 500
#对象调用方法
my_haier.print_info()#魔方方法#在python中,__xx__的函数叫做魔法方法,指的是具有特殊功能的函数
#体验__init__#__init__()的方法作用:初始化对象#__init__()方法,在创建一个对象时默认被调用,不需要手动调用#__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去
#目标:定义init魔法方法设置初始化属性,并访问调用
"""1 定义类:
init魔法方法:width 和 height
添加实例方法:访问实例属性
2 创建对象
3 验证结果
调用实例方法"""
classWasher():def __init__(self):#添加实例属性
self.width = 500self.height= 800
defprint_info(self):print("洗衣机的宽度是:%s"%self.width)print("洗衣机的高度是:%s"%self.height)
haier=Washer()
haier.print_info()#洗衣机的宽度是:500 洗衣机的高度是:800
#带参数的__init__()#思考:一个类可以创建多个对象,如何对不同的对象设置不同的初始化属性呢? 答:传参数
classWasher():def __init__(self,width,height):#添加实例属性
self.width =width
self.height=heightdefprint_info(self):print("洗衣机的宽度是:%s"%self.width)print("洗衣机的高度是:%s"%self.height)
haier= Washer(100,200)
haier.print_info()#洗衣机的宽度是:100 洗衣机的高度是:200
__str__()
当使用print输出对象的时候,默认打印对象的内存地址。如果类定义了__str__方法,那么就会打印从这个方法中return的数据classWasher():def __init__(self):
self.width= 300
def __str__(self):return '解释说明:类的说明或对象状态的说明'haier=Washer()print(haier) #解释说明:类的说明或对象状态的说明
#__del__()#当删除对象时,python解释器也会默认调用__del__()方法
classWasher():def __init__(self):
self.width= 300
def __del__(self):print("对象已经删除")
haier= Washer() #对象已经删除
#del haier