Automatic import ?

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Fri Mar 26 00:20:45 EDT 2010


On Thu, 25 Mar 2010 18:03:58 -0700, C. B. wrote:

> Hi everyone,
> 
> I'm currently coding a C library which provides several modules and
> objects.
> 
> Let's say that some of these objects are classes called AAA and BBB. The
> constructor of AAA needs to get BBB as argument.
> 
> So I can run the following code :
> 
> from mymodule import AAA
> from mymodule import BBB
> 
> a = AAA(BBB()))
> 
> But, as there is no case where AAA can be used without BBB, I would like
> to avoid importing BBB in my Python scripts when I already import AAA.

Since AAA must take an argument of BBB, then give it a default:

# in mymodule
def AAA(arg=BBB()):
    ...

# in another module
from mymodule import AAA
a = AAA()


Or do this:

from mymodule import AAA, BBB
a = AAA(BBB())




> For now, I think that reproducing the behavior of the __init__.py file
> could be a good way to do this, but how can I code that using only the C
> API ?

What is the behaviour of the __init__.py file?



-- 
Steven



More information about the Python-list mailing list