栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用别名导入模块

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用别名导入模块

使用

import module as name
不会 创建一个别名。您误解了导入系统。

导入有两件事:

  1. 将模块加载到内存中,并将结果存储在中
    sys.modules
    。此操作仅执行 一次 ;后续导入将重用已经加载的模块对象。
  2. 在当前名称空间中绑定一个或多个名称。

as name
语法使您可以在最后一步中控制名称。

对于

from module importname
语法,您仍然需要命名完整模块,如中
module
所查找
sys.modules
。如果您真的想为此使用别名,则必须在此处添加额外的引用:

import numpy  # loads sys.modules['numpy']import syssys.modules['np'] = numpy  # creates another reference

但是
,在导入子模块时,这样做也会产生副作用。一般而言,您不想在

sys.modules
不为所有(可能的)子模块创建别名的情况下通过拨入来为包创建别名,否则可能会导致Python将子模块重新导入为单独的命名空间。

这种情况下 ,导入

numpy
还会触发的加载
numpy.linalg
,因此您真正要做的就是:

import numpy as np# np.linalg now is available

不需要模块别名。对于不会自动导入子模块的软件包,您必须使用:

import package as aliasimport package.submodule

alias.submodule
始终可用,因为子模块始终作为属性添加到父包中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641607.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号