関数が関数を呼び出す方法を見るだけでなく、Pydocのファイルオブジェクトについても読んだ後、Ze ShawのLPTHWスクリプトの1つを書き直して、その動作を理解しようとしました。ここで関数を呼び出す関数。なぜ、これはファイルを読むのではなく、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を返しますか?
を。それは時々私を得る最も簡単なものです。 –