2018-01-18 16:43 GMT+01:00 Federico Cerchiari <federicocerchi...@gmail.com>: > Ciao Luca, > non ho controllato, ma "a naso" direi che un generatore, anche se definito > in line è un oggetto function, e come tale ha il suo namespace chiuso che > non può accedere all'esterno.
Mi sembra forzata come spiegazione, per il generatore self è un oggetto dell'argomento come gli altri, no? L'esempio che segue funziona, anche su py2 come l'OP usa. Si dovrebbe vedere il codice che ha dato l'errore inizialmente per capire il problema. class Schedule(object): weeks = { 3: 'three', 9: 'nine', 1: 'one', } def original_sorting(self): for o in (self.weeks[s] for s in sorted(self.weeks)): print(o) Schedule().original_sorting() produce: $ ipython test.py one three nine Ma quell'accesso al valore nel generatore mi sembra un po' intricato, io userei: def simpler_sorting(self): for k, v in sorted(self.weeks.iteritems()): print(v) che si legge più semplicemente. -- Andrea _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python