如何查看Python中+运算符对应的__add__()方法的方法体?
查看Python中__add__()方法的内部实现
要弄清楚__add__()方法的具体实现,得分两种情况来操作:
自定义类的__add__方法
如果是你自己写的类里实现了__add__,直接看对应类的代码就行。举个例子:
class MyNumber: def __init__(self, value): self.value = value def __add__(self, other): return MyNumber(self.value + other.value)
直接查看这个类里的__add__方法块就能看到实现逻辑。
内置类型的__add__方法
像int、str、list这些Python内置类型的__add__是用C语言写的,在Python层面看不到方法体,得去看CPython的源码:
int的加法逻辑对应源码里的int_add函数,在Objects/longobject.c文件中str的拼接逻辑对应string_concat函数,在Objects/stringobject.c文件中list的合并逻辑对应list_concat函数,在Objects/listobject.c文件中
要是你只是想知道这个方法的功能,不用翻源码,直接用help()函数看文档就行:
help(int.__add__)
执行后会输出方法的作用、参数要求这些信息。
另外,也可以用inspect模块查看方法的基本信息,但这个只对Python编写的类有效,内置类型会报错——毕竟它们的实现不在Python代码里:
import inspect print(inspect.getsource(int.__add__))
内容的提问来源于stack exchange,提问作者Sandeep Chetia
相关产品推荐
相关产品推荐

