假设我有一个包“colorExtensions”,在我的__init__.py
中有{}。通过向目录和__all__
列表中添加模块,该包应该能够自动扩展。以下是可以接受的,还是有其他的“最佳实践”来处理这类事情?在
import colorExtentions
from colorExtentions import *
for moduleName in colorExtentions.__all__:
colors.append(moduleName)
promptUserToChoose(colors)
Tags:
假设每种颜色都是一个类,我认为更好的解决方案是确保所有的颜色子类都来自一个类(这无论如何都是很好的设计):
然后,当您需要所有颜色的列表时,您只需导入将包含这些类的任何模块,然后执行以下操作:
^{pr2}$这样就得到了每个
Color
子类的列表。在注意在2.x中,您将需要新样式的类(继承自
object
)来使用__subclasses__()
方法。在在Python官方文档中,不鼓励从模块导入所有名称。参见:
http://docs.python.org/2/howto/doanddont.html#from-module-import
引用:
如果坚持使用
__all__
-请使用其他名称,如color_list
,并动态扩展该变量。然后导入该变量:相关问题 更多 >
编程相关推荐