- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好吧,我有一个包含站点各个页面的 Controller 的文件。让我们说以下结构。
/controllers
/login_controller.py
/main_controller.py
/and_so_forth
我知道您可以使用 __init__.py
中的片段动态加载文件夹 Controller 中的所有已定义符号。 :
__all__ = []
import pkgutil
import inspect
for loader, name, is_pkg in pkgutil.walk_packages(__path__):
module = loader.find_module(name).load_module(name)
for name, value in inspect.getmembers(module):
if name.startswith('__'):
continue
globals()[name] = value
__all__.append(name)
问题是,我确实喜欢合格的进口产品。假设每个 Controller 文件都定义了一个 Controller 函数。有什么方法可以实现 __init__.py
的行为神奇的是,当我这样做时:
import controllers
我可以将这些函数称为
controllers.controller_function_name()
而不是:
controllers.module_name.controller_function_name()
?去掉中间人。本质上,让它表现得就像一个模块一样。
有什么办法可以做到这一点吗?
最佳答案
如果我理解正确的话,你的代码已经可以让你做你想做的事情了。
当您执行globals()[name] = value
时,您会在__init__.py
中创建一个全局变量。 __init__.py
中的全局变量决定了包命名空间下可用的内容。因此,如果您在代码中最终在 __init__.py
中创建了一个变量 some_controller
,那么您将能够执行 controllers.some_controller
。
__all__
仅影响使用 from module import *
时导入的内容。通过修改 __all__
,您会影响 fromcontrollers import *
时会发生的情况,但不会影响 controllers
下可用的内容> 如果你只是导入 Controller
。
关于Python 合格的导入全部在包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22209564/
我是 DDD 的新手,正在考虑在我的项目中使用这种设计技术。 然而,让我对 DDD 印象深刻的是这个想法是多么的基本。与 MVC 和 TDD 等其他设计技术不同,它似乎不包含任何突破性的想法。 例如,
我正在尝试理解 elementFormDefault="qualified/unqualified" 的含义在嵌入 WSDL(SOAP 1.1、WSDL 1)的 XML 模式中。 例如,我在 WSDL
我有一段代码,它使用 iostreams 的 xalloc 和 pword 将各种类型的标志存储为指针。由于 pword 公开了一个 void*&,我有一个简单的包装器来通过旧的 C 转换公开存储的类
我是一名优秀的程序员,十分优秀!