2011-05-22 34 views
15

最近,我在看一些Python成语。 我发现Python中使用的协议的很多描述,例如排序(__cmp__,...)或生成器。此外,还有像每个对象(我想)定义的方法,如__hash__Python协议/接口的完整列表

经过在互联网上的一些搜索后,我还没有找到这些协议和方法的完整列表。 任何人都可以给我一些 指针 的URL?

+9

http://xkcd.com/138/ [对不起] – Johnsyweb 2011-05-22 11:55:10

+0

@johnsyweb:+1 :) – Kru 2011-05-22 11:56:03

+1

FYI他们通常被称为 “魔术方法”。 – katrielalex 2011-05-22 12:21:37

回答

14

您的最佳参考始终是Python Online Documentation,特别是关于Special method names的部分。

交互式Python解释器也是一个非常有用的工具。尝试下列:

>>> dir(object) 
['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__'] 
>>> help(object.__class__) 

>>> help(object.__hash__) 

>>> help(hash)