Il giorno 10/nov/2012, alle ore 12:52, Daniele Varrazzo <p...@develer.com> ha scritto:
> On 2012-11-10 09:35, Giovanni Porcari wrote: >> Stamattina mi sono trovato un errore che non riesco a spiegarmi. >> >> Python 2.7.2 >>>>> import email >> >>>>> email.generator >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> AttributeError: 'module' object has no attribute 'generator' >> >> >>>>> import email.generator as eg >>>>> dir (eg) >> ['DecodedGenerator', 'Generator', 'Header', 'NL', 'StringIO', >> 'UNDERSCORE', '_FMT', '__all__', '__builtins__', '__doc__', >> '__file__', '__name__', '__package__', '_fmt', '_is8bitstring', >> '_make_boundary', '_width', 'fcre', 'random', 're', 'sys', 'time', >> 'warnings'] >>>>> >> >> >> >> Si tratta di un baco (magari noto) o c'è qualcosa che mi sfugge ? > > Se generator non è importato esplicitamente da email/__init__.py è normale > che "import email; email.generator" fallisca. Stai dicendo che in versioni > precedenti funzionava e in 2.7.2 no? Questa potrebbe essere considerata una > regressione. Ma se è stato sempre necessario importare email.generator, > allora penso sia un modo di fare le cose normale. Un package non è tenuto a > importare tutti i suoi sotto-moduli: potrebbe non essere desiderabile se per > esempio qualcuno è lento da importare (tipo usa uuid) e non è necessario al > resto del package. > Non so se in versioni precedenti funzionasse o meno perchè non avevo avuto occasione di usarlo. Avevo dato per scontato (ed è solo mia ignoranza) che fosse una regola che un package importasse i sotto-moduli ma riflettendoci mi rendo conto che avevo preso come regola assoluta quella che probabilmente è solo una frequente abitudine. In effetti avevo trovato uno snippet probabilmente mal convertito dai nomi vecchi ai nomi nuovi e forse non testato e lo avevo preso per oro colato ;) Grazie G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python