→ uranusjr: TypeError: F() takes no arguments (1 given) 02/19 12:17
簡寫而已 重點不在那邊...
※ 編輯: NTUHensen (114.39.247.20), 02/19/2015 12:34:19
推 LiloHuang: 會是一個 type object 02/19 12:59
是的 我也如此想, 我也希望他是個object就好解了. 但事實上是
我們回顧一下__call__的功用時, 他的目的就是在call一個instance加入參數時,會
執行__call__裡面的內容.
參: http://0rz.tw/69tMQ
回過頭來, 如果說F()回傳的是object(也就是instance)的話, 那麼按照這行:
BeDeco = F(BeDeco) 的左手邊BeDeco也會是object
如果我們call他的話:
result = BeDeco()看等式右手邊, 理論上它會去找C內__call__ 如果沒有, 程式
會顯示錯誤. 但事實上C內沒有__call__ 卻執行相當正常. 這意味著它很可能不
是instance
※ 編輯: NTUHensen (114.39.247.20), 02/19/2015 13:52:31
※ 編輯: NTUHensen (114.39.247.20), 02/19/2015 13:53:46
→ uranusjr: 你沒看懂二樓, 它是「type object」, 重點是 type 02/19 14:07
→ uranusjr: 事實上你執行完之後 BeDeco 就是 inner class C 02/19 14:07
→ uranusjr: 我想你的問題可能是沒有想通 class 和 class *instance* 02/19 14:09
→ uranusjr: 都是 object instance (前者是 of type "type") 02/19 14:10
→ uranusjr: 三千多 upvotes 的答案 02/19 14:11
感謝資訊, 看來回傳的是Class object, 基本上就是class 而不是instance
※ 編輯: NTUHensen (114.39.247.20), 02/19/2015 15:06:18