Python中有两种导入模块的方法

1:import module

2:from module import *

使用from module import *方法可以导入独立的项,也可以用from module import *导入所有的东西。eg:from types import FunctionType

代码示例:

>>> from UserDict import UserDict
>>> UserDict
<class UserDict.UserDict at 0x015D3B90>
>>> import UserDict
>>> UserDict
<module 'UserDict' from 'C:\Python27\lib\UserDict.pyc'>

在上面,使用from UserDict import UserDict进行模块的导入,UserDict 被直接导入到局部名字空间去了,所以它可以直接使用,而不需要加上模块名的限定。

再比如:

>>> import types
>>> types.FunctionType ##1.types 模块不包含方法,只是表示每种 Python 对象类型的属性。注意这个属性必需用模块名 types 进行限定。
<type 'function'>
>>> FunctionType ##2.FunctionType 本身没有被定义在当前名字空间中;它只存在于 types 的上下文环境中。 Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
FunctionType
NameError: name 'FunctionType' is not defined
>>> from types import FunctionType ##3.这个语法从 types 模块中直接将 FunctionType 属性导入到局部名字空间中
>>> FunctionType ##4.FunctionType 可以直接使用,与 types 无关
<type 'function'>

总结:什么时候你应该使用 from module import

  • 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import
  • 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import
  • 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突。

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

最新文章

  1. cmd窗口编码设置
  2. 在ASP.NET Core使用Middleware模拟Custom Error Page功能
  3. 11月7日下午PHP----PDO访问方式操作数据库
  4. 第七章 美化DetailView界面
  5. Enhancing the Scalability of Memcached
  6. EF Code First 学习笔记:表映射
  7. JAVA中关于Map的九大问题
  8. 微信公众平台接口,asp.net实现
  9. js正则表达式验证
  10. 笔记:Spring Cloud Ribbon 客户端负载均衡
  11. 20165236 实验四 Android程序设计
  12. Oracle spatial、openlayers、geoserver开发地理信息系统总结
  13. 阿里巴巴开源项目: canal
  14. ZooKeeper 的读写操作 &amp; 选举机制
  15. 备份时如何排除掉默认的 information_schema 和 mysql 库?
  16. easy canvas shape with react antdesign 简单的canvas图形in antd &amp; react
  17. 洛谷 P3373 【模板】线段树 2 解题报告
  18. KineticJS教程(6)
  19. Visual Studio 2012的Windows Service服务安装方式
  20. freeMarker(十六)——FAQ

热门文章

  1. DateTime操作,时间范围,加减
  2. ORACLE 查看表结构
  3. Spring Boot + Spring Data JPA + PostgreSQL
  4. C# 操作World生成报告
  5. ZooKeeper学习笔记(一)
  6. HDU 4622 Reincarnation 后缀自动机 // BKDRHash(最优hash)
  7. 从架构层面杜绝lua中使用未定义的变量
  8. SpringBoot-(5)-properties的使用
  9. memset 导致的段错误(segmentation fault)
  10. RecyclerView 可以与CollapsingToolbarLayout一起使用