Python:add和__add__之间的区别

时间:2011-04-16 09:05:06

标签: python

在Python中,add__add__方法有什么区别?

2 个答案:

答案 0 :(得分:10)

一个名为add的方法就是 - 具有该名称的方法。它对语言或翻译没有任何特殊意义。关于它的唯一可以说的是集合具有相同名称的方法。就是这样,没什么特别的。

方法__add__+运算符在内部调用,因此它在语言规范和解释器中得到特别关注,并覆盖它以定义类对象的加法。你不直接调用它(你可以 - 它们仍然是正常的方法,它们只是在某些情况下被隐式调用并有一些额外的限制 - 但是很少有理由 - 更不用说好了原因)。有关详细信息,请参阅docs on "special" methods以及其他“特殊”方法的完整列表。

答案 1 :(得分:0)

要添加到早期帖子中,__*__通常不鼓励作为自己类中标识符的名称,除非有人对core-python功能进行了一些攻击,例如修改/过载标准运算符等。此外,这些名称通常与魔法行为相关联,因此除非隐含了方法的魔法特性,否则避免在自己的命名空间中使用它们可能是明智之举。

请参阅this post以获得详尽的论据