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

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