寻址python对象
我正在尝试将ncclient用于Python 如果我这样做,它会起作用:寻址python对象,python,python-import,Python,Python Import,我正在尝试将ncclient用于Python 如果我这样做,它会起作用: from ncclient import manager m = manager.connect() 如果我这样做,它会失败: import ncclient m = ncclient.manager.connect() 错误为AttributeError:“模块”对象没有属性“管理器” 我不明白有什么区别。这不是同样的方法吗?为什么不是呢?导入模块(包)不会自动导入子模块。(有些模块会这样做。例如,导入os模块也会导
from ncclient import manager
m = manager.connect()
如果我这样做,它会失败:
import ncclient
m = ncclient.manager.connect()
错误为AttributeError:“模块”对象没有属性“管理器”
我不明白有什么区别。这不是同样的方法吗?为什么不是呢?导入模块(包)不会自动导入子模块。(有些模块会这样做。例如,导入os
模块也会导入os.path
)
替换以下行:
import ncclient
与:
要加载子模块
管理器
是否有办法(例如,从pydoc)判断子模块是否自动导入?您需要尝试或查看模块的代码(ncclient/\uu init\uuuuuuuuuupy
或ncclient.py
)查看子模块是否有import语句。@falsetru:只有在明确记录的情况下才可以安全地假设;否则,将来的版本可能会推迟一些导入以提高启动延迟。@Davidsherring这就是为什么我建议使用import-ncclient.manager
而不是import-ncclient
。@falstru:当然,我只是说“尝试或查看模块的代码”这并不是确定导入一个模块是否隐式导入另一个模块的有效方法,因为您不应该依赖通过这种方式获得的任何实现信息。
import ncclient.manager