Python基础教程:函数名本质
函數(shù)名的本質(zhì)
函數(shù)名實(shí)質(zhì)上就是函數(shù)的內(nèi)存地址
def wrapper():passprint(wrapper)1.引用是什么?
當(dāng)我們定義a=1的時(shí)候,系統(tǒng)會(huì)開辟一塊內(nèi)存空間來保存1,然后用a變量名保存1所在的內(nèi)存地址引用,變量名就好像C語(yǔ)言中的指針,大家可以把引用理解成地址,a里面存的是1這個(gè)數(shù)值所在的地址,a存了1的引用。
當(dāng)我們?cè)诖a中定義了一個(gè)函數(shù),系統(tǒng)會(huì)分配一塊內(nèi)存空間,用于保存函數(shù)體的內(nèi)部變量和函數(shù)名,這個(gè)wrapper只是一個(gè)變量名,保存了函數(shù)內(nèi)存中的地址,我們可以x = wrapper,y = wrapper.這樣的操作就相當(dāng)于把wrapper中引用的地址,賦值給x,y ,這樣x和y都指向了wrapper函數(shù)所在的引用,我們可以x()和y()來調(diào)用wrapper函數(shù),調(diào)用實(shí)際上是一個(gè)函數(shù),而x,y,wrapper三個(gè)變量存了同一個(gè)函數(shù)的地址。
函數(shù)名保存的是函數(shù)的內(nèi)存地址
''' def func():print(1)print(func) #<function func at 0x000001AFABE2C8C8>函數(shù)名賦值給其他變量
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def func():print(1)x = func y = func x() y()函數(shù)名可以當(dāng)容器類的元素
def func():print(1)x = func y = func x() y()函數(shù)名可以當(dāng)作其他函數(shù)的參數(shù)
函數(shù)名保存的是函數(shù)在內(nèi)存中的地址,f1 = f = f()內(nèi)部的地址-> f1()
''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def f():print(123)def fun(f):f1 = ff1()fun(f)函數(shù)名可以當(dāng)作其他函數(shù)的返回值
def func():print(123)def fun(f):return fret = fun(func) ret()總結(jié)
以上是生活随笔為你收集整理的Python基础教程:函数名本质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础教程:赋值语句和布尔值
- 下一篇: python 匿名函数捕获变量值 (执行