我正在尝试模拟一个非常简单的文本编辑器,它接受来自用户的文本行,将文本组合成一个字符串,然后将字符串打印到文件中。当我运行我的代码时,我发现文件内容只是“无”。
我跟踪了代码,发现从核心函数 getpayload() 返回的结果字符串是“无”,尽管该字符串在返回点之前是正确构建的。
代码(剥离了按原样执行的文件 I/O):
def getpayload(s):
temp = getln()
if temp.upper() != "END":
s += temp
getpayload(s)
else:
return s
def getln():
txt = input("|> ")
return str(txt)
def start():
text = getpayload("")
print(text)
if __name__ == "__main__":
start()
运行时会产生以下内容:
$ python3.2 editor.py
|> Line one
|> Line two
|> Line three
|>
|> Line five
|> END
$ None
在 else 语句中打印字符串会按预期生成字符串的输出。我还在 str() 中包含了返回字符串。
我研究了其他产生所需输出的方法,但我是 python 新手,我有兴趣了解为什么会发生这种问题。