On Tue, May 14, 2013 at 01:32:40PM +0200, Pietro Battiston wrote: > Avevo anche pensato che __enter__ potrebbe installare un sys.excepthook > modificato che cattura le NameErrorException (e __exit__ ripristinare > quello originale)... ma un conto è catturarle, un altro fornirle al > codice l'oggetto relativo e farlo proseguire normalmente...
premetto che non mi è chiarissimo perché tu voglia installare sys.excepthook, ma un context manager può gestire solo il codice all'interno del contesto stesso: with context(..): do_stuff() # <- questo e' gestito do_stuff_again() # <- questo no, se NameError e' generata, __exit__ # non può fare niente però se NameError, e non NameErrorException, è generato all'interno del contesto, tu nell'__exit__ puoi sopprimere l'eccezione, basta ritornare un valore che sia valutato logicamente vero: def __exit__(self, exc_type, exc_value, traceback): if isinstance(exc_type, NameError): return True # di default ritorna None che è valutato falso e l'eccezione e' # propagata > ¹ Per chi si stesse preoccupando per la mia mente malata: voglio potere > scrivere codice che lavora sulle colonne di pandas.DataFrame riferendomi > direttamente alle colonne con il loro nome, e magari stabilendo un > filtering su una condizione prefissata, semplificando _enormemente_ il > codice delle analisi econometriche che sviluppo con pandas/statsmodels. non saprei non conosco pandas. se posti del codice come è ora e come vorresti che sia forse qualche aiuto in più posso dartelo ciao m. _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python