Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
寻址python对象_Python_Python Import - Fatal编程技术网

寻址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模块也会导

我正在尝试将ncclient用于Python

如果我这样做,它会起作用:

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