解析python調(diào)用函數(shù)加括號(hào)和不加括號(hào)的區(qū)別
下面看下python調(diào)用函數(shù)加括號(hào)和不加括號(hào)的區(qū)別,具體代碼如下所示;
def bracket(data): return data if __name__ == '__main__': # 不帶括號(hào)調(diào)用的結(jié)果:<function bracket at 0x0000000004DD0B38>,a是整個(gè)函數(shù)體,是一個(gè)函數(shù)對(duì)象,不須等該函數(shù)執(zhí)行完成 a = bracket print a # 帶括號(hào)調(diào)用的結(jié)果:6 ,b是函數(shù)執(zhí)行后返回的值6,須等該函數(shù)執(zhí)行完成的結(jié)果 b = bracket(6) print b
1、不帶括號(hào)時(shí),調(diào)用的是這個(gè)函數(shù)本身 ,是整個(gè)函數(shù)體,是一個(gè)函數(shù)對(duì)象,不須等該函數(shù)執(zhí)行完成。
2、帶括號(hào)(參數(shù)或者無(wú)參),調(diào)用的是函數(shù)的執(zhí)行結(jié)果,須等該函數(shù)執(zhí)行完成的結(jié)果。
簡(jiǎn)單說(shuō)就是:
如果使用括號(hào),則只調(diào)用if和函數(shù)。hello()調(diào)用函數(shù);hello只是一個(gè)綁定到函數(shù)的名稱,可以用來(lái)將函數(shù)對(duì)象作為參數(shù)傳遞給另一個(gè)函數(shù)。
def caller(f):
f()
def hello():
print("hi")
def goodbye():
print("bye")
caller(hello) # Prints "hi"
caller(goodbye) # Prints "bye"
id返回不同的值,因?yàn)閷?duì)id的每次調(diào)用都接收一個(gè)完全獨(dú)立的對(duì)象作為其參數(shù)。使用id(hello),id獲取函數(shù)對(duì)象本身。使用id(hello()),id將獲得通過(guò)調(diào)用hello返回的對(duì)象;
到此這篇關(guān)于python調(diào)用函數(shù)加括號(hào)和不加括號(hào)的區(qū)別的文章就介紹到這了,更多相關(guān)python調(diào)用函數(shù)加括號(hào)和不加括號(hào)的區(qū)別內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信