2017-02-10 56 views
0

我输入一组文件的使用创建一个对象了每个文件的进口

from xyz import * 

让我们假设我的文件结构如下

xyz 
| 
|---x.py 
|---y.py 
|---z.py 

X,Y和Z目录都是同一班的孩子。

有没有办法让我所做的导入的所有对象的列表,所以我可以创建x,y和z的对象?

要指定,我想访问目录结构中类的对象。

输出

[X,Y,Z] #classes from the import 

回答

2

而不是使用from xyz import *(你不该”无论如何),请使用简单的import xyz。现在你可以迭代dir(xyz)

import xyz 
objs = [getattr(xyz, obj)() for obj in dir(xyz)] 
0

在你的某某目录中,添加一个__init__.py文件包含__all__变量:

__all__ = ["x", "y", "z"] 

参见http://docs.python.org/tutorial/modules.html

+0

我已经有一个'__all__'变量来做*导入。我如何访问独立于目录的'__all__'变量?这会导入所有内容,但不会将这些类放入列表中。 – cjds

相关问题