2009-03-18 4 views

Répondre

3

De nombreux packages incluent une liste appelée __all__, qui répertorie les modules membres. Ceci est utilisé lorsque python fait from x import *. Vous pouvez en savoir plus sur ce here.

Si le package ne définit pas __all__, vous devrez faire quelque chose comme la réponse à une question que j'ai précédemment posée, here.

-2

importation fred

print dir (fred)

+0

Cette liste répertorie tous les attributs, pas seulement les sous-modules, donc elle ne répond pas à la question. – bignose

-1

Vous avez la source.

Regardez les fichiers dans le répertoire du paquet. Ces modules sont disponibles pour l'importation.

+0

Il existe plusieurs façons d'avoir des fichiers à l'intérieur du paquet (un répertoire) qui ne sont * pas * des modules disponibles pour l'importation. Le mécanisme d'importation Python connaît la différence, il semble donc raisonnable d'exposer cette fonctionnalité plutôt que de la réinventer. – bignose

+0

Inventer? Inventer quoi? Lis juste la source. –

-1

dir ([objet]);

Sans arguments, dir() renvoie la liste des noms dans la portée locale actuelle. Avec un argument, essayez de renvoyer une liste d'attributs valides pour cet objet.

Ainsi, dans le cas d'un module, comme 'sys':

>>> import sys 
>>> dir(sys) 
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions'] 

C'est tout ce qu'il ya à faire.

+0

Cela liste tous les attributs, pas seulement les sous-modules, donc il ne répond pas à la question. – bignose

Questions connexes