[python] jak pretizit oper8tory and, or, not

Radek Kanovsky rk na dat.cz
Sobota Duben 17 14:34:57 CEST 2004


On Sat, Apr 17, 2004 at 12:12:32AM +0200, Petr Kolesa wrote:

> Diky za radu. Ja ale bohuzel potrebuju vyhodnocovat vyrazy ve tristavove 
> logice (ano, ne , nevim). Moje idea byla vytvorit tridu Unknown, ktera 
> by se mohla objevit v logickem vyrazu ...
> 
> Cely problem je v tom, ze na vstupu dostanu retezec (vyraz), ktery pak 
> vyhodnotim a vracim vysledek. Format vstupu je dany. A opravdu se mi 
> nechce parsovat vyraz, abych to mohl vyhodnotit rucne.

S tristavovou logikou python rozhodne nepocita. Zkuste vic popsat, co
vlatne resite (priklady vstupu). Pokud vas vstup splnuje pythonovskou
syntaxi, mohl by vam byt ku prospechu modul compiler. Dostanete AST
(abstract syntax tree), na zaklade ktereho muzete vygenerovat kod.

    >>> compiler.parse("x and y")
    Module(None, Stmt([Discard(And([Name('x'), Name('y')]))]))

Radek Kaňovský



Další informace o konferenci Python