gpt4 book ai didi

Python:解释器在解析文件后说 "None"

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:26 25 4
gpt4 key购买 nike

我用 Python 为我创建的编程语言编写了一个简单的解释器。不过我有一个小问题:当我尝试读取文件以便可以解释代码时,Python 说 None

这是解释器代码:

import sys

class Interpret:
def read(self, cmd):
tokens = cmd.split("\n")
for i in range(0, len(tokens)):
self.parse(tokens[i])

def parse(self, cmd):
if cmd.startswith("print(") and cmd.endswith(")"):
cmd = cmd[6:]
cmd = cmd[:-1]
return(cmd)

interpret = Interpret()

code = open(sys.argv[1], 'r')
print(interpret.read(str(code)))

这是我要读取的文件中的代码:print(Hi)\n(是的,那里有换行符,不是字符\n)

所以,这是在 CMD 中发生的事情:

> python interpreter.py test.tl

None

它应该输出Hi,但它不能正常工作。我认为这与解释器代码的最后两行有关,但我不完全确定。

最佳答案

您只是调用 self.parse 并没有使用它的返回值,并且假设 self.parse 不输出任何内容并且 read 不返回任何内容 (None),结果是 None

您可能希望您的read 在每次迭代时yield self.parse(tokens[i]),从而使其成为生成器,然后执行如下操作:

for data in interpret.read(str(code)):
print(data)

关于Python:解释器在解析文件后说 "None",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com