软件大道 X 号

英伦大表哥
有温度的科技,有态度的生活
  1. 首页
  2. Python
  3. 正文

Python 魔术方法大全

2023年3月2日 3232点热度 2人点赞 0条评论

魔术方法是 Python 提供的让用户客制化一个类的方式,是定义在类里的一些特殊方法。

魔术方法的名字前后都有两个下划线,所以也叫做 Dunder Method。比如最常见的 __init__

类生命周期相关

  1. __new__: 从 Class 创建 Object 的时候调用,有返回值,返回值就是一个 Object。单例模式、metaclass 会用到 __new__
  2. __init__: 初始化一个 Object 的时候调用,没有返回值

    object_a = ClassA(args) 等价于
    object_a = __new__(A, args)
    __init__(object_a, args)

  3. __del__:简单的可以类比 Java 里的析构函数,但是由于 Python 内存自动回收的逻辑,__del__ 有时候不一定会在期望的时机执行

对象的字符串表示

  1. __str__:人类更易懂的字符串表示,print 优先使用 __str__,如果 __str__ 没有被定义,会使用 __repr__
  2. __repr__:一般返回更详细的信息,用于调试
  3. __format__:用于格式化输出,用的比较少
  4. __bytes__:用于客制化 Object 的 byte 表示,一般用的比较少
标签: 暂无
最后更新:2023年3月2日

zathing

Keep going

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2021 godbg.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

苏ICP备2021045765号