在閱讀了Pydoc中的文件對象並查看了函數如何調用函數之後,我重寫了Zed Shaw的LPTHW腳本之一,試圖瞭解它是如何工作的。調用函數的函數;爲什麼這會返回NoneType而不是讀取文件?
下面是代碼:
def open_file(f):
open(f)
def read_file(f):
f.read()
read_file(open_file('test.txt'))
這裏是錯誤:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in read_file
AttributeError: 'NoneType' object has no attribute 'read'
然而這工作得很好:
input_file = 'test.txt'
print open(input_file).read()
爲什麼函數調用函數的版本返回NoneType而不是讀取文件?
我現在明白了;這是最簡單的事情,有時讓我。 –