def?f():? ? print?'call?f()...'#為什么要加這個(gè)語句,這個(gè)語句想讓我們看到啥?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?還有,這不是在建造一個(gè)函數(shù)嗎,為什么沒有return的返回值?? ?? ? def?g():#?定義函數(shù)g: ?#為什么在函數(shù)發(fā)f內(nèi)部再建一個(gè)函數(shù),這依據(jù)的是什么?? ? ? ? print?'call?g()...'? ?? ? return?g?#?返回函數(shù)g: #為什么返回的是g,而不是g()?-------------------------------------------------------------------------問題都在注釋里面-------------------------------------------------------------------------------------->>>?x?=?f()? ?#?調(diào)用f() ,為啥不是直接f(),還非得要一個(gè)x?call?f()...>>>?x? ?<function?g?at?0x1037bf320>>>>?x()? ?#?x指向函數(shù),因此可以調(diào)用,x和x()的區(qū)別是什么call?g()...? ?
1 回答
已采納

尋夢(mèng)的男孩
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超4個(gè)贊
“在Python中,函數(shù)本身也是對(duì)象”,所用問題皆可用這句話來解釋。
從上到下,按順序:
?print?'call?f()...' ?僅僅是輸出一個(gè)字符串'call?f()...' 而已。。而已。。。加這句估計(jì)是想讓看到輸出了'call f()'就知道函數(shù)f()被調(diào)用了吧;
函數(shù)本身就是一個(gè)對(duì)象,在對(duì)象中定義函數(shù)當(dāng)然沒問題了
g是函數(shù)自身,g()是函數(shù)調(diào)用
x = f() ?調(diào)用f()并把f()的返回值賦給變量x
同3, x是函數(shù)自身,x()是函數(shù)調(diào)用
添加回答
舉報(bào)
0/150
提交
取消