python - 一次性导入所有子模块

标签 python function import module compiler-errors

我对 Python 很陌生,但我对其他编程语言很有经验。
我有这行代码:

import module as m
如果我尝试访问它的功能:
m.spam.foo()
m.eggs.bar()
我收到以下错误:
AttributeError: module 'module' has no attribute 'spam'
AttributeError: module 'module' has no attribute 'eggs'

另一方面,如果我写:
import module.spam, module.eggs
进而:
module.spam.foo()
module.eggs.bar()
它工作正常。

如果我这样写:
from module import spam, eggs
和:
spam.foo()
eggs.bar()
工作没有错误。

我更喜欢第一种方法,因为我不必手动 import每个子模块在使用之前...
那么,这种方法有什么问题呢?是否有解决方法可以使它工作(我不喜欢 from module import * 方法,因为它们可能与我的全局变量混淆)?
我在引用资料中到处搜索,但找不到任何东西。

最佳答案

我不知道这如何解决你的问题,因为这段代码实际上比 from module import spam, eggs 更长。方法,但 this question可能会解决您的问题。基本上,你会使用 __init__加载所有子模块的函数。

关于python - 一次性导入所有子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65152739/

相关文章:

objective-c - Objective-C : Where to #import protocol header files

python - 尝试从字典中查找以键名称开头的任何文件

ruby-on-rails - Rails 5.2 使用 ActiveStorage 和 Creek 导入 XLSX

mysql - 导入大型sql文件django

jquery - 从 jQuery 中的字符串调用函数

c++ - 将函数名称作为 C++ 类中另一个函数的参数传递

javascript - jQuery 的 .click - 将参数传递给用户函数

python - Pandas 按范围分组,允许重复

python - Cython 使用 gmp 算术

Python 多线程与 Postgresql