Всем привет. Есть файл:
#inter.py
class Intepritator():
def __init__(self, file):
f = open(file, "r")
s = f.read()
li = s.split("\n")
vars = {}
for l in li:
def command(name): #функция для создания команд
if l.startswith(name): #начинается ли строка на имя
what = l.replace(name, "")
what = what.replace("(", "").replace(")", "") #удаляем скобки и возвращаем только значение в скобках
return what
if l.startswith("lef"): #слово для создания переменной
base = l[4:]
key = base.partition(" = ")[0] #имя переменной
val = base.partition(" = ")[2] #значение
vars[key] = val #добавляем в словарь ключ = знаяение
if command("prn"): #команда print
if command("prn") == key: #если аргумент функции равен ключу
#for i in command("prn"):
#if i in vars.keys():
#print(vars[i], end="")
for i in key:
print(vars[i]) #выводим значение
#print(vars)
else:
print(command("prn"))
a = Intepritator("test.lang")
В test.lang:
lef a = 9
lef b = "hello"
prn(b)
prn(a)
Думал что должно вывестись 9 и "hello", но вместо этого пишется
"hello"
a
То есть вместо 9 выводит а. Что не так в коде?