py魔法方法

Python 中有一类方法,以两个下划线开头,两个下划线结尾,并且在满足某个条件的情况下,会自动调用,这类方法称为,魔法方法。

__init__ 方法

  1. 创建对象之后会自动调用

  1. 用法:

  1. 给对象添加属性的,(初始化方法,构造方法)

  1. 某些代码,在每次创建对象之后,都要执行,就可以将这行代码写在__init__方法

  1. 注意事项:

  1. 不要写错

""""
猫类,属性 name,age,show_info(输出属性信息)
"""

class cat:
    # 定义添加属性的方法
    def __init__(self,name,age):
        self.name = name # 给对象添加 name 属性
        self.age = age # 给对象添加 get 属性

    # 输出属性信息
    def show_info(self):
        print(f'小猫的名字是:{self.name},年龄是:{self.age}')

# 创建对象,不要在自己类的缩进中
b_cat = cat('蓝猫', 2) # 创建对象,会输出
blue = b_cat
blue.show_info()

black_cat = cat('黑猫',3)
black_cat.show_info()

__str__方法

  1. 使用print(对象)打印对象的时候,会自动调用

  1. 在这个方法中一般书写对象的属性信息的,即打印对象的时候想要查看什么信息,在这个方法中进行定义的。如果类中没有定义__str__方法,print(对象),默认输出对象的引用地址

  1. 注意事项:这个方法必须返回一个字符串

class cat:
    # 定义添加属性的方法
    def __init__(self, name, age):
        self.name = name  # 给对象添加 name 属性
        self.age = age  # 给对象添加 get 属性

    def __str__(self):
        return f'小猫的名字是:{self.name}, 年龄是:{self.age}'


# 创建对象,不要在自己类的缩进中
b_cat = cat('蓝猫', 2)
print(b_cat)

black_cat = cat('黑猫', 3)
print(black_cat)

__del__方法(了解)

__init__方法,创建对象之后,会自动调用(构造方法)

__del__方法,对象被删除销毁时,自动调用的(emmm heritage)(析构方法)

  1. 调用场景,程序代码运行结束,所有对象都被销毁

  1. 调用场景,直接使用del删除对象(如果对象有多个名字,多个对象引用一个对象,需要把所有对象都删除)

class Demo:
    def __init__(self, name):
        print('我是 __init__,我被调用了')
        self.name = name

    def __del__(self):
        print(f'{self.name} 没了,给它处理')

# Demo('A')
a = Demo('a')
b = Demo('b')
del a
print('代码运行结束')

猜你喜欢

转载自blog.csdn.net/weixin_56194193/article/details/129124565