Python中如何通过函数对象调用原始函数
如何通过函数对象调用原始函数?
嘿,这事儿其实超简单!当你执行 a = fun_name 时,变量 a 已经直接指向了原始的 fun_name 函数对象——那个打印出来的 <function fun_name at 0x00000265C9B0E320> 就是函数本身的引用,你完全可以直接用 a() 来调用它,效果和直接写 fun_name() 一模一样。
举个实际的代码例子你一看就懂:
def fun_name(): print("这是原始函数的输出!") # 把函数对象赋值给变量a a = fun_name # 打印a,得到函数对象的标识 print(a) # 输出类似 <function fun_name at 0x...> # 直接调用a,等价于调用fun_name() a()
运行这段代码,你会看到控制台打印出 "这是原始函数的输出!",和直接调用 fun_name() 的结果完全一致。
补充个小知识点:在Python里,函数是「一等公民」——它们本身就是对象,可以被赋值给变量、作为参数传递,甚至作为其他函数的返回值。所以 a 其实就是 fun_name 的「别名」,两个变量指向的是内存中同一个函数对象,调用其中任意一个都会执行相同的逻辑。
哪怕你的函数被装饰器包装过,只要 a 指向的是最终的函数对象,调用 a() 依然会执行对应的逻辑(包括装饰器添加的额外功能),本质上还是在调用原函数的包装版本哦。
内容的提问来源于stack exchange,提问作者Abhishek kumar
相关产品推荐
相关产品推荐

