Valentino Volonghi aka Dialtone ha scritto:
exec "class Foo(object): pass"
Foo.ciao
Traceback (most recent call last):
File "<stdin>", line 1, in ?
AttributeError: type object 'Foo' has no attribute 'ciao'
Il vero danno e` sovrascrivere nomi gia` esistenti nella tua
applicazione oltre ad altri che spendendo abbastanza tempo si
potrebbero trovare (attachi analoghi all'SQL injection ma fatta col
codice).
Non ne vale proprio la pena... Meglio evitare la exec del tutto e
assieme a quella la eval().
quella dell' object no ... se la classe non esiste viene creata base,
senza niente come argomento, quindi su un controllo a-zA-Z_ dovrei stare
tranquillo ma esiste un modo per evitare eval sono sempre pronto per
sceglierlo, è che non sapevo ne di type("NomeClasse", (), {}) ne di
inspect ... grazie a tutti, c'è da studiare qui.
Saluti,
Andrea Giammarchi
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python