Я пытаюсь сделать парсер питон, который может достигать двух типов функциональныхпостроения синтаксического анализатора в питона
s1 = foo()
s2 = {'k1':v1,'k2':v2}
s3 = [v1,v2,v3...]
Я говорю два типа ... где первый тип, как правило, объекты и второго типов являются своего рода прочь как переменные. Теперь первый один легко ..
def parse_string_to_command(string):
if "foo" in string:
#handle this.
elif # handle s2
elif #condition to handle s3
EDIT 1: Я думаю, что я не ясно сказал, что я пытаюсь для того чтобы достигнуть.
Все, что я пытаюсь сделать это следующим образом:
Все, что проходит от этой функции является строка .. некоторые методы .. в то время как другие переменные. Я просто пытаюсь их обработать.
В основном это то, что пользователь будет делать
> params = {"input":"foobar"}
> foo = Foo(params)
Теперь для обработки метод Foo .. Я делаю это:
if "Foo" in string:
tokens = string.split("=")
# I have tokens [foo,Foo(params)]
But params is a string now..whereas it is needed to be a dictionary.
Теперь я знаю, что я могу просто справиться с этим here..inside Foo ... но в целом я хочу обрабатывать эти переменные назначения внутри функции parse_string_to_command
Это имеет смысл.
Clever не всегда означает лучше. –
@WaleedKhan: Так какой лучший способ прочно справиться с этим? – Fraz
@WaleedKhan Просто уточнить: в программировании умный более или менее никогда не означает лучший :) Это более или менее противоположность читаемости – keyser