我正在開發Python中的迷你語言(不是真的,只是個人項目的一些命令)。向空間中添加一個空格的字符串
下面的代碼:
class FlashCard:
def __init__(self):
self.commands = {'addQuestion':self.addQuestion}
self.stack = []
self.questions = {}
def addQuestion(self):
question = self.stack.pop()
answer = input(question)
def interpret(self,expression):
for token in expression.split():
if token in self.commands:
operator = self.commands[token]
operator()
else:
self.stack.append(token)
i = FlashCard()
i.interpret('testing this addQuestion')
的解釋功能只拉字符串中的最後一個字(這一點)。有沒有辦法讓它拉動整條線?
謝謝!
從即將到來的答案,即時混淆你真正想要的結果。您是否試圖保留傳遞給解釋的整個表達式或僅保留不是命令令牌的標記?另外,如果在表達式中間找到一個命令標記,那麼它將被調用,並且只對在它之前被捕獲的標記起作用。這也是你想要的嗎? – jdi
@jdi - 只有OP知道肯定,但從代碼我會期望他正在建立一個自定義命令的解析器,如「什麼是貓」的土耳其語翻譯? addQuestion' [這可能會添加一個新的閃存卡,問題是:「什麼是土耳其語翻譯」貓「?」雖然我可能是錯的! :) – mac
你是對的,mac。每個問題都應該獨立,新的解釋行不應該與舊的解釋行結合。 –