在本书第四章关于 Python 的持久性之后,他们要求我们修改“nester”内部名为“print_lol”的模块的功能。
这是我的代码。
import sys
def print_lol(the_list, indent=False, level=0, fh=sys.stdout):
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item, indent, level+1, fh)
else:
if indent:
for tab_stop in range(level):
print("\t", end='', file=fh)
else:
print(each_item, file=fh)
这是测试代码。
import nester3
pl = nester3.print_lol
cat = ['death', [3, 4, 5, ['life']]]
pl(cat, indent=True, fh='amazing.txt')
当我尝试实际调用此代码时会发生以下语句:
File "tester.py", line 7, in <module>
pl(cat, indent=True, fh='amazing.txt')
File "/home/ehl/Python/nester/nester3.py", line 39, in print_lol
print_lol(each_item, indent, level+1, fh)
File "/home/ehl/Python/nester/nester3.py", line 43, in print_lol
print("\t", end='', file=fh)
AttributeError:“str”对象没有属性“write”
我不明白我怎么可能添加“写”属性,任何帮助将不胜感激。