On Mon, Feb 27, 2012 at 6:01 PM, Terry Reedy <tjre...@udel.edu> wrote:
> On 2/27/2012 1:16 AM, Frank Millman wrote:
>>>
>>>
>>> To avoid the tedious reference, follow this with
>>> read = sound.formats.wavread # choose the identifier you prefer
>
>
> I tested something like this with stdlib, but there must be some important
> difference I did not notice. It make be in the contents of __init__.py.

I don't know what you tried, but I can easily replicate Frank's
results with an empty __init__.py.

> How about import b.d as d, etc?

> Try import b; c = b.c

Why would any of these make a difference?  The AttributeError
indicates that at the time d tries to grab the module in b's "c"
attribute, the attribute does not exist (because it has not finished
importing).  Alternate syntaxes for getting the "c" attribute from b
are not going to change that.

Python does some magic so that you can do "import b.c" inside d while
b.c is still importing without resulting in infinite recursion, but
the success of the import does not signify that b.c is actually
available yet.

Cheers,
Ian
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to