Dave Beazley mentioned this in his modules tutorial (https://www.youtube.com/watch?v=0oTh1CXRaQ0, see around 32:00 or so; I recommend watching the whole thing if you can find the time). The gist of it is that because echo is a sub-module/package of sound.effects, you can type sound.effects.echo. The way that Python implements this is by literally putting "echo" in the namespace of sound.effects (i.e., its __init__.py). That's why import foo.bar.baz pulls in the name "baz" **in foo/baz/__init__.py**.
Dave doesn't touch on this any more than that once in his tutorial as I recall, so you may want to look for some more references on how the import system works if it's still unclear.
Dave Beazley mentioned this in his modules tutorial (https:/ /www.youtube. com/watch? v=0oTh1CXRaQ0, see around 32:00 or so; I recommend watching the whole thing if you can find the time). The gist of it is that because echo is a sub-module/package of sound.effects, you can type sound.effects.echo. The way that Python implements this is by literally putting "echo" in the namespace of sound.effects (i.e., its __init__.py). That's why import foo.bar.baz pulls in the name "baz" **in foo/baz/ __init_ _.py**.
Dave doesn't touch on this any more than that once in his tutorial as I recall, so you may want to look for some more references on how the import system works if it's still unclear.