魔法方法

本文介绍了Python面向对象编程中的__init__、__str__和__del__方法。__init__用于对象初始化,设置对象属性;__str__方法返回对象的字符串表示,通常用于打印;__del__方法在对象被删除时调用,可用于资源释放。示例中展示了如何使用这些方法创建洗衣机类,并展示了不同方法的应用场景。
摘要由CSDN通过智能技术生成

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值