1。内置模块
2。扩展的 例如:django
3。自定义的
文件
import demo
def read():
print('my read func')
demo.read()
print(demo.money) 先从sys.modules里查看是否已经被导入
如果没有被导入,就依据sys.path路径取寻找模块
找到了就导入
创建这个模块的命名空间
执行文件,把文件中的名字都放到命名空间里
import sys
print(sys.modules.keys())
print(sys.path) import time as t
print(t.time()) import *** as ***用于:
  oracle
  mysql
  if 数据库 == ‘oracle’:
  import oracle as db
  elif 数据库 == ‘mysql’:
   import mysql as db
  连接数据库 db.connect
  登录认证
  增删改查
  关闭数据库
像是数据库这种的,可以通过匹配选择as ***最终用一个变量名来执行就可以。
所有的模块导入都应该尽量往上写
内置模块
扩展模块
自定义模块
模块不会重复被导入 : sys.moudles
从哪儿导入模块 : sys.path
mport 模块名
模块名.变量名 和本文件中的变量名完全不冲突
import 模块名 as 重命名的模块名 : 提高代码的兼容性
import 模块1,模块2
from 模块名 import 变量名
直接使用 变量名 就可以完成操作
如果本文件中有相同的变量名会发生冲突
from 模块名 import *
将模块中的所有变量名都放到内存中
如果本文件中有相同的变量名会发生冲突
from 模块名 import * 和 __all__ 是一对
没有这个变量,就会导入所有的名字
如果有all 只导入all列表中的名字
__name__
在模块中 有一个变量__name__,
当我们直接执行这个模块的时候,__name__ == '__main__'
当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == '模块的名字'

最新文章

  1. [Django]用户权限学习系列之权限管理界面实现
  2. 解读sencha touch移动框架的核心架构(二)
  3. Java线程:线程的同步-同步方法
  4. 拾遗——java多线程
  5. asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染
  6. java的if else语句入门
  7. 安装配置sock5代理
  8. php基础03:数据类型
  9. 接受客户端传的inputstream类型转成string类型
  10. ubnutu安装sougou 输入法
  11. inline-block总结
  12. 【Zookeeper】源码分析之Watcher机制(一)
  13. 织梦dedecms列表页dede:pagelist分页问题
  14. Node.js C/C++ 插件
  15. 软件测试人员需要掌握的linux命令(二)
  16. 转---Python——numpy random类
  17. Spring Boot 静态资源访问原理解析
  18. spring boot 错误处理总结
  19. 简单的SSM框架搭建教程
  20. 多线程工具之CompletionService

热门文章

  1. 一小时了解数据挖掘⑤数据挖掘步骤&常用的聚类、决策树和CRISP-DM概念
  2. selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理
  3. fastreport中文乱码问题
  4. System中关于Property的方法
  5. 【BZOJ】1572: [Usaco2009 Open]工作安排Job
  6. 【leetcode 简单】第一题 两数之和
  7. 41、用Python实现一个二分查找的函数
  8. 【IDEA】与Eclipse "Link with Editor"等价功能设置
  9. 事务的特性——ACID
  10. 用C#实现对MSSqlServer数据库的增删改查---Server层(WaterLevelRecordServer.cs、DeviceRecordServer.cs)