我对 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/