Python——常用的魔法方法

    技术2024-06-13  76

    写在前面

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

    1. __ init __ ()

    用来初始化一个类对象的函数,它在类中不写并不会报错,但是不写这个类就不能用(谁会去写一个啥属性都没有的类啊,有病啊); 这个函数执行时,OS会在内存中开辟一块空间来存放一个对象

    2. __ str __()

    当使用print输出对象的时候,默认打印对象的内存地址。如果一个类重写了__ str __方法,那么就会打印这个方法的返回值

    class Person(): def __str__(self): return "hello" tom = Person() print(tom) # "hello"

    3. __ del __()

    当删除对象时,python解释器会默认调用del 方法;当对象生命周期结束时,python的垃圾回收机制也会自动调用__ del __方法进行回收。

    class Person(): def __del__(self): print(f'{self}对象已被删除') tom = Person() del tom # result <__main__.Person object at 0x00000287CD651608>对象已被删除

    4. __ call __()

    这个函数可以证明类对象或者其他例如函数是否可调用。详细参考我的博客

    5. __ next __()

    它是用来判断某种数据类型是否可迭代的

    6. __ doc __()

    获取类或方法得描述信息

    class Foo(): """ 这是类描述 """ def start(self): """ 这是类方法描述 """ pass f = Foo() print(Foo.__doc__) print(f.start.__doc__) # results 这是类描述 这是类方法描述

    7. __ module __ && __ class __

    __ module __ 表示当前操作的对象在那个模块__ class __ 表示当前操作对象的类是什么

    test.py

    class Person(): def __init__(): self.name = 'laowang'

    main.py

    from test import Person obj = Person() print(obj.__module__) # 输出test print(obj.__class__) # 输出test.Person

    8. __ dict __

    获取类或对象的所有信息以字典的形式返回

    Processed: 0.026, SQL: 9