我正在學Python,並且正在閱讀「Think Python」,並在本書中做了一些簡單的練習。Python中的函數給出了錯誤信息
我被問到:「定義一個名爲do_four的新函數,它接受一個函數對象和一個值,然後調用該函數四次,並將該值作爲參數傳遞。
我想通過調用一個已經定義的函數do_tice()並用一個名爲print_double()的函數來用一個語句來編寫這個函數。下面是代碼:
def do_twice(f, x):
f(x)
f(x)
def do_four(f, v):
do_twice(do_twice(f, v), v)
def print_twice(s):
print s
print s
s = 'abc'
do_four(print_twice, s)
此代碼產生一個錯誤:
abc
abc
abc
abc
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-41-95b513e5e0ee> in <module>()
----> 1 do_four(print_twice, s)
<ipython-input-40-100f8587f50a> in do_four(f, v)
1 def do_four(f, v):
----> 2 do_twice(do_twice(f, v), v)
<ipython-input-38-7143620502ce> in do_twice(f, x)
1 def do_twice(f, x):
----> 2 f(x)
3 f(x)
TypeError: 'NoneType' object is not callable
在試圖瞭解發生了什麼事我試圖構建一個棧圖在書中描述的。那就是:
你能解釋一下在棧圖錯誤消息和評論?
您的建議將不勝感激。