What's the strange double underscored attribute (__attribute__) in Python?
本问题已经有最佳答案,请猛点这里访问。
我在python中看到一些奇怪但有用的双下划线属性,例如:
1 2 3 4 5 6 | __module__ __init__ __str__ __class__ __repr__ ... |
它们似乎是一些特殊的属性。它们的规范名称是什么?
它们被称为特殊方法。
python是一种鸭子类型的语言,并且实现了面向用户的语言特性在这些特殊方法实现的"协议"中。
请参阅:http://docs.python.org/release/2.5.2/ref/specialname.html
举个例子:
要模拟任意对象的比较,请在类中实现以下两种方法:
__lt__ __eq__
根据PEP-8的"命名约定"部分
__double_leading_and_trailing_underscore__ :"magic" objects or
attributes that live in user-controlled namespaces. E.g.__init__ ,
__import__ or__file__ . Never invent such names; only use them as
documented.