[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