`

Python模块在使用中的两种导入方法

 
阅读更多

Python模块的两种导入方法。我们在使用的时候需要不断的学习。其实我们只要是掌握了相关代码的编写在实际应用中两种都有用,你应该知道什么时候使用哪一种方法。

一种方法,import module,你已经在第 2.4 节 “万物皆对象”看过了。另一种方法完成同样的事情,但是它与第一种有着细微但重要的区别。

下面是 from module import 的基本语法:

  1. fromUserDictimportUserDict

它与你所熟知的 import module 语法很相似,但是有一个重要的区别:UserDict 被直接导入到局部名字空间去了,所以它可以直接使用,而不需要加上模块名的限定。你可以导入独立的项或使用 from module import * 来导入所有东西。

Python 中的 from module import * 像 Perl 中的 use module ;Python 中的 import module 像 Perl 中的 require module 。

Python 中的 from module import * 像 Java 中的 import module.* ;Python 中的 import module 像 Java 中的 import module 。

  1. importmodulevs.frommoduleimport
  2. >>>importtypes>>>types.FunctionType<type'function' >>>>FunctionTypeTraceback(innermostlast):File" <interactiveinput>",line1,in?NameError:Thereisno variablenamed'FunctionType'>>>fromtypesimport FunctionType>>>FunctionType<type'function'>

types 模块不包含方法,只是表示每种 Python 对象类型的属性。注意这个属性必需用模块名 types 进行限定。FunctionType 本身没有被定义在当前名字空间中;它只存在于 types 的上下文环境中。这个语法从 types 模块中直接将 FunctionType 属性导入到局部名字空间中。现在 FunctionType 可以直接使用,与 types 无关了。

什么时候你应该使用 from module import?

如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突。除了这些情况,剩下的只是风格问题了,你会看到用两种方式编写的 Python 代码。

尽量少用 from module import * ,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成调试和重构都更困难。
分享到:
评论

相关推荐

    python导入库的具体方法

    python使用import 导入模块的语法,主要有以下两种: import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 导入整个模块。 from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],…: ...

    python支持使用自定义编码的zipfile模块

    python默认的zipfile模块的文件列表只支持cp437和UTF8两种编码,而中文操作系统中zip常使用gbk来存储文件列表,这使得使用python解压zip会乱码,需要读取ZipInfo逐个解压文件并且重命名,并且乱码中可能会出现非法...

    详解在Python中以绝对路径或者相对路径导入文件的方法

    1、在Python中以相对路径或者绝对路径...在demo——mnist.py文件中执行以下两种导入操作 # 第一处 from gcforest.gcforest import GCForest from gcforest.utils.config_utils import load_json # 第二处 config = load

    Python3.5模块的定义、导入、优化操作图文详解

    本文实例讲述了Python3.5模块的定义、导入、优化操作。...(2)两种模块的导入方法的使用比较: 仅仅导入模块,调用的方式是:模块.方法 导入模块的所有方法和变量:直接调用(不建议使用这样的方法) 原因:在调

    python导入模块交叉引用的方法

    实际项目中遇到python模块相互引用问题,查资料,终于算是弄明白了。 首先交叉引用或是相互引用,实际上就是导入循环,关于导入循环的详细说明,可见我摘自《python核心编程》第二版的摘抄:Python导入循环方法。 ...

    Python中如何添加自定义模块

    一般来说,我们会将自己写...Python 运行环境在查找库文件时是对 sys.path 列表进行遍历,如果我们想在运行环境中注册新的类库,主要有以下2种方法: 1. 在sys.path列表中添加新的路径。 2. 将库文件复制到sys.path列表

    Python编程入门经典

    17.7 在C代码中使用Python 对象 342 17.8 本章小结 345 17.9 习题 346 第18章 数值编程 347 18.1 Python语言中的数值 347 18.1.1 整数 348 18.1.2 长整数 348 18.1.3 浮点数 349 18.1.4 格式化数值 350 18.1.5 作为...

    Python内置random模块生成随机数的方法

    Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入random模块。 import random 下面介绍下Python内置的random模块的几种生成随机数的方法。 1、random.random()随机生成 0 到 1 之间的浮点数...

    python-基本数学运算.docx

    在Python中,除法运算使用斜杠(/)表示。例如,6/3的结果为2.0。 取余运算是指将两个数相除后得到的余数。在Python中,取余运算使用百分号(%)表示。例如,7%3的结果为1。 幂运算是指将一个数的指数次幂。在Python...

    Python中的模块和包

    Python中的模块和包 ... 模块1.1 模块的概念1.2 模块的两种导入方式1)import 导入使用 &#96;as` 指定模块的别名2)from…import 导入from…import *(知道)1.3 模块的搜索顺序[扩展]1.4 原则 —— 每一个文件都应该

    python-3.7.0b5下載

    PEP引入了两种特殊方法__class_getitem __()和__mro_entries__,这些方法现在被大多数类和特殊构造用于输入。结果,不同类型的各种操作的速度提高了7倍,可以使用泛型而没有元类冲突,并且修改了类型模块中长期...

    初学者python笔记(模块篇)

    现在Python这门编程语言是越来越火了,其中的一个主要原因就是Python中有各种...导入模块的三种方法 正常导入 import cal,time,turtle #连续导入3个模块 from方法 from cal import * #这样会导入模块内所有的方法 fr

    python入门到高级全栈工程师培训 第3期 附课件代码

    10 在python2中的继承顺序是什么 11 在子类中调用父类方法 12 super调用父类的方法 13 选择系统作业讲解 第26章 01 学生自主复习 02 分享列表 03 多态 04 封装 05 面向对象概念总结 06 反射 07 反射及动态导入模块...

    使用Python的turtle模块画图的方法

    4.操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令 (1)运动命令: forward(d) 向前移动距离d代表距离 backward(d) 向后移动距离d代表距离 right(degree) ...

    nimporter:导入时为Python编译Nim扩展!

    什么是Nimporter 使用Nimporter,您可以简单地将Nim源代码文件导入为Python模块,然后将它们与Python代码无缝地结合使用。可能的好处性能:Nim编译为C 无需编写C即可降低云计算成本利用两种语言的生态系统: 的广度...

    测量程序编制 - python A7模块.pptx

    模块;模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。...import 导入模块的语法,主要有以下两种: import 模块名1 [as 别名1], 模块名2 [as 别名2],…: 使用这种语法格式的 impor

    python中安装django模块的方法

    安装django有两种方式: 1.pip安装 pip install django 这个方法我用的时候已经报错。貌似访问被阻挡。我一般都用第二种 2.下载压缩包手动安装 在django官网下载tar.gz包,放在python对应目录中解压缩 命令窗口进入...

    Pycharm导入自己的模块没有智能提示的解决办法

    最近在学习Python,使用pycharm时,发现导入自己写的功能模块时pycharm不能智能提示,感觉很苦恼,原来是pycharm不会将当前的工作目录加入到自己的sourse_root中解决办法有两种,本文只具体介绍最简单的一种, ...

    Python unittest如何生成HTMLTestRunner模块

    生成 HTMLTestRunner 模块 unittest 里面是不能生成 html 格式报告的,需要导入一个第三方...两种模板如下,建议使用第一种(第一种模板更加美观) 文件内容如下: (1)第一种模板 # -*- coding: utf-8 -*- A TestR

Global site tag (gtag.js) - Google Analytics