【发布时间】:2023-03-07 17:50:01
【问题描述】:
我用 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,但它不能正常工作。我认为这与解释器代码的最后两行有关,但我并不完全确定。
【问题讨论】:
标签: python command-line-arguments interpreter