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

Rispondere a