特殊功能的函数(魔法方法)

在python中,_XX_()的函数叫做魔法方法,指的是具有特殊功能的函数。

1、_init_()

1.1 体验_init_()

  作用:初始化对象

 

# 目标:定义init魔法方法设置初始化属性,并访问调用
"""
1. 定义类
    init魔法方法:width 和 height
    添加实例方法:访问实例属性
2. 创建对象
3. 验证成果
    调用实例方法
"""

class washer():
    # 定义初始化功能的函数
    def __init__(self):
        # 添加实例属性
        self.width = 500
        self.height = 800

    def print_info(self):
        # 类里面调用实例属性
        print(f'洗衣机宽度是:{self.width}')
        print(f'洗衣机高度是:{self.height}')
# 创建对象
haier = washer()

haier.print_info()

 

  注意:

    1. _init_()方法,在创建一个对象时默认被调用,不需要手动调用。

    2. _init_(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递过去。

1.2 带参数的_init_()

# 1. 定义类:带参数的init:宽度和高度; 实例方法:调用实例属性
class washer():
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def print_info(self):
        print(f'洗衣机宽度是:{self.width}, 洗衣机高度是:{self.height}')

# 2. 创建属性,创建多个对象且属性值不同;调用实例方法
haier1 = washer(10, 20)
haier1.print_info()

haier2 = washer(100, 200)
haier2.print_info()

2、_str_()

  当使用print输出对象的时候,默认打印对象的内存地址。如果定义了str方法,那么就会打印从在这个方法中的return的数据。

class washer():
    def __init__(self):
        self.whdth = 300

    def __str__(self):
        return '解释说明:类的说明或对象状态的说明'


haier = washer()
# 解释说明:类的说明或对象状态的说明
print(haier)

3、_del_()

  当删除对象时,python解释器也会默认调用del方法。

class washer():
    def __init__(self):
        self.whdth = 300

    def __del__(self):
        print('对象已经删除')

haier = washer()

# 这行有没有都可以,因为代码往下运行时已经默认运行了删除对象操作
del haier

 

重点:

  __init__():初始化

  __str__():输出对象信息

  __del__():删除对象时调用

posted @ 2022-11-20 23:46  㞢卄BYZ  阅读(116)  评论(0)    收藏  举报