[python-nl] classes importeren uit subfolders
A.T.Hofkamp
a.t.hofkamp at tue.nl
Tue Mar 7 08:46:34 CET 2006
Hai,
UnrealEd wrote:
> bedankt voor het antwoord, ik maak er al veel gebruik van nu :)
>
> die __init__ kan ik ook gebruiken om alle classen die in die subfolder staan
> aan te roepen, of niet?
>
> stel ik heb er myclass1.py, myclass2.py, myclass3.py erin staan
Om precies te zijn, dit zijn geen classes maar modules. Een module is een file
(ie ham.py), terwijl een class wordt gedefinieerd met
class bacon(object):
etc
etc
> en als ik die nu in een ander script allemaal wens aan te roepen, kan ik dat
> dan doen op deze mannier:
>
> import classes
>
> waarbij er in de map classes in het bestand __init__.py dit staat:
>
> import myclass1
>
> import myclass2
>
> import myclass3
>
> zal dat werken?
Het werkt vast, maar het doet wellicht niet wat je wil.
De normale manier is iets als
# modules/__init__.py
import mymod1, mymod2, mymod3
__all__ = [ 'mymod1', 'mymod2', 'mymod3' ]
in bijvoorbeeld de file modules/__init__.py
De inhoud van __all__ wordt gebruikt als vervanging van *, dus
from modules import *
betekent dat je eigenlijk doet
from modules import mymod1, mymod2, mymod3
Albert
More information about the Python-nl
mailing list