Andrei Alexandrescu:

https://github.com/D-Programming-Language/dmd/pull/2139

Probably you already know the following things because they see, similar solutions.

Python uses "__init__.py" instead of "package.d", it can also be empty:
http://docs.python.org/2/tutorial/modules.html

__init__.py can also execute initialization code for the package, like static this() in D.

Inside __init__.py you can also define a "__all__" variable where you list all the modules imported when "from package import *" is used.

If __all__ is not defined, the statement from sound.effects import * does not import all submodules from the package sound.effects into the current namespace; it only ensures that the package sound.effects has been imported (possibly running any initialization code in __init__.py) and then imports whatever names are defined in the package. This includes any names defined (and submodules explicitly loaded) by __init__.py. It also includes any submodules of the package that were explicitly loaded by previous import statements.<

Bye,
bearophile

Reply via email to