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