Zdravím, hraju si ted se slovníky a zde oblíbenou fcí exec() :). Hned uvedu příklad, sice blbej ale vysvětluje vše.
script = """if prodano == 10:celkem = 90;mleko -= 1;kafe += 1;print(mleko, kafe)""" script2 = """f = open(__file__, 'rb'); print(f.read());f.close()""" mleko = 5 kafe = 10 def kokos(): celkem = 100 prodano = 10 print(locals()) try: exec(script, globals(), locals()) except NameError, err: print err raise SystemExit print(locals()) kokos() 1. dá se nějak definovat globalní slovník na 'safe use' hodnoty? chci třeba jen kafe a nechci definovat jiny slovník na použití exec(script, my_globals, my_locals) čistě povolit jen něco. 2. Zde ošetruju jen NameError při skriptu který bude obsahovat neplatnou proměnnou.Jde i nějak jinak zjistit jestli ten python skript je platný? teda bez syntax error? eval() mi ho hazí neustále. Použití bude v programu kde budu globalni a lokalni hodnoty upravovat podle udalostí skriptem uloženým v sqlite databázi. omezeni tam chci kvuli nechtenemu spusteni treba open() fci. Vim ze tohle slovniky neresi ale pro zacatek chci zacit s temi promennymi :) diky za kazde nakopnuti. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python