我有一个目录结构:
example.py
templates/
__init__.py
a.py
b.py
a.py
和b.py
只有一个类,命名与文件相同(因为它们是cheetah模板)。出于纯粹的样式原因,我希望能够在example.py
中导入和使用这些类,如下所示:
现在,我在模板文件夹的__init__.py
中创建这个文件:
__all__ = ["a", "b"]
from . import *
然而,这看起来很糟糕(可能是多余的),甚至不能实现我想要的,因为我必须使用这样的类:
t = templates.a.a()
有什么想法?在
在您的
__init__.py
中:现在}的内容也都将位于
a
的所有内容都将在templates
中,所有{templates
中。在我甚至不知道你能得到
from . import *
。我的python解释器会抱怨这样的语句。不过,对于您的问题,您可以:你现在可以使用
^{pr2}$其他解决方案:
为了避免重复
from <whatever> import *
25次,您需要一个循环,例如:我把有意义的代码放在函数中是因为(a)它总是最好的[[为了性能和避免污染模块的名称空间],(b)在这种特殊情况下,它也避免了意外(例如,某些子模块可能定义一个名称}。。。因此,重要的是要将我们在循环中使用的那些名称保留在函数的本地,而不是模块全局变量,这样它们就不会被意外践踏;-)。在
thismod
或{如果要强制一个名为
^{pr2}$modname
的模块只有一个同名的类(或其他全局类),请将循环的最后一个语句更改为:相关问题 更多 >
编程相关推荐