首页 > Python类里很多__xxx__这样的函数有什么特殊意义吗?

Python类里很多__xxx__这样的函数有什么特殊意义吗?

看一些源代码,很多类里有这种方式命名的函数,比如

class Sample(object):
    def __str__(object):
        pass
        
    def __repr__(object):
        pass
    
    def __new__(object):
        pass
        
    def __init__(object):
        pass

不知道为什么要这么写呢,__xxx__都是自定义的么?


这些方法通常称之为“魔术方法”,下面两个链接是对它们的分类和介绍

A Guide to Python's Magic Methods
http://www.rafekettler.com/magicmetho...

Python 魔术方法指南
http://pycoders-weekly-chinese.readth...


这些是 Python 数据模型中的特殊方法名,在下面页面有详细的说明:

Special method names

【热门文章】
【热门文章】