Python中奇怪的双重下划线属性(__attribute__)是什么?

时间:2014-01-10 15:24:58

标签: python

我在Python中看到一些奇怪但有用的双重下划线属性,例如:

__module__
__init__
__str__
__class__
__repr__
...

它们似乎是一些特殊属性。他们的规范名称是什么?

2 个答案:

答案 0 :(得分:5)

它们被称为特殊方法

Python是一种 Duck Typed 语言,其中很多都是 面向用户的语言功能已实现 在这些特殊方法实施的“协议”中。

请参阅:http://docs.python.org/release/2.5.2/ref/specialnames.html

作为示例

要模仿任意对象的比较,请在类中实现以下两种方法:

  • __lt__
  • __eq__

答案 1 :(得分:2)

"Naming conventions" section of PEP-8

  

__double_leading_and_trailing_underscore__:“魔法”物品或   存在于用户控制的命名空间中的属性。例如。 __init__,   __import____file__。不要发明这样的名字;只用它们作为   记录。