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三個變量存了同一個函數的地址。
2.函數名保存的是函數的內存地址
def func():print(1)print(func) #<function func at 0x000001AFABE2C8C8>3.函數名賦值給其他變量
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def func():print(1)x = func y = func x() y()4.函數名可以當容器類的元素
def fun():print(111) def fun1():print(222) def fun2():print(333)l1 = [fun,fun1,fun2] for i in l1:i()5.函數名可以當作其他函數的參數
函數名保存的是函數在內存中的地址,f1 = f = f()內部的地址 -> f1()
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def f():print(123)def fun(f):f1 = ff1()fun(f)6.函數名可以當作其他函數的返回值
def func():print(123)def fun(f):return fret = fun(func) ret()總結
以上是生活随笔為你收集整理的Python函数名的本质,你有了解过嘛?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python内置函数之随机函数
- 下一篇: Python基础教程:set集合的教程