本篇内容主要讲解“Python函数名的本质是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python函数名的本质是什么”吧!
函数名的本质
函数名实质上就是函数的内存地址
def wrapper(): passprint(wrapper)
1.引用是什么?
当我们定义a=1的时候,系统会开辟一块内存空间来保存1,然后用a变量名保存1所在的内存地址引用,变量名就好像C语言中的指针,大家可以把引用理解成地址,a里面存的是1这个数值所在的地址,a存了1的引用。
当我们在代码中定义了一个函数,系统会分配一块内存空间,用于保存函数体的内部变量和函数名,这个wrapper只是一个变量名,保存了函数内存中的地址,我们可以x = wrapper
,y = wrapper
.这样的操作就相当于把wrapper中引用的地址,赋值给x,y ,这样x和y都指向了wrapper函数所在的引用,我们可以x()和y()来调用wrapper函数,调用实际上是一个函数,而x,y,wrapper三个变量存了同一个函数的地址。
函数名保存的是函数的内存地址
def func(): print(1)print(func)#<function func at 0x000001AFABE2C8C8>
函数名赋值给其他变量
def func(): print(1)x = funcy = funcx()y()
函数名可以当容器类的元素
#Python学习交流QQ群:778463939def fun(): print(111)def fun1(): print(222)def fun2(): print(333)l1 = [fun,fun1,fun2]for i in l1: i()
函数名可以当作其他函数的参数
函数名保存的是函数在内存中的地址,f1 = f = f()
内部的地址 -> f1()
def f(): print(123)def fun(f): f1 = f f1()fun(f)
函数名可以当作其他函数的返回值
def func(): print(123)def fun(f): return fret = fun(func)ret()
到此,相信大家对“Python函数名的本质是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4581260/blog/4943642