如何在python源代码中找到运算符的定义?

Kob*_*ohn 7 python

__contains__由于这个SO问题,我对python中"in"(?)运算符的实现感到好奇.我下载了源代码并试图grep,浏览等找到它的一些基本定义,但我还没有成功.有人能告诉我找到它的方法吗?

当然,找到那种东西的一般方法是最好的,所以像我这样的人可以学习下次捕鱼.

我正在使用2.7,但如果3.x的过程完全不同,那么使用这两种技术会很不错.

mil*_*ose 3

我认为实施PySequence_Contains始于Objects/abstract.c. operator.contains我通过查看in的实现找到了它Modules/operator.c,它将所有本机运算符包装在 Python 函数中。

  • 我经常使用 [cscope](http://cscope.sourceforge.net/) 来做这种事情。能够在特定上下文中搜索字符串,而不仅仅是搜索任何出现的字符串,这会很有帮助。不利的一面是,cscope 仅适用于 C 和 C++(也许还有 Java)。 (2认同)