博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模块的导入
阅读量:4326 次
发布时间:2019-06-06

本文共 1376 字,大约阅读时间需要 4 分钟。

一.模块导入的过程

(1).先从sys.modules里查看模块是否已经被导入

(2).如果没有被导入,就依据sys.path路径寻找模块

(3).找到了模块就导入

(4).创建这个模块的命名空间

(5).执行文件,把文件中的名字都放到命名空间里

import sysprint(sys.modules.keys())print(sys.path)

二.模块导入的方法

所有的模块导入都应该尽量往上写

导入的顺序依次向下:

内置模块
扩展模块
自定义模块

1.import

(1).import 模块名

模块名.变量名——和本文件中的变量名完全不冲突

(2).import  模块名  as  重命名的模块名

提高代码的兼容性

示例一:

有两个sql模块mysql和oracle,根据用户的输入,选择不同的sql功能

#mysql.pydef sqlparse():    print('from mysql sqlparse')#oracle.pydef sqlparse():    print('from oracle sqlparse')#test.pydb_type=input('>>: ')if db_type == 'mysql':    import mysql as dbelif db_type == 'oracle':    import oracle as dbdb.sqlparse()
View Code

示例二:

假设有两个模块xmlreader.py和csvreader.py,它们都定义了函数read_data(filename):用来从文件中读取一些数据,但采用不同的输入格式。可以编写代码来选择性地挑选读取模块,例如

if file_format == 'xml':     import xmlreader as readerelif file_format == 'csv':     import csvreader as readerdata=reader.read_date(filename)
View Code

(3).import 模块1,模块2

2.from import

(1).from  模块名  import  变量名     

直接使用 变量名 就可以完成操作

如果本文件中有相同的变量名会发生冲突

(2).from  模块名  import  变量名  as  重命名变量名

(3).from  模块名  import  变量名1,变量名2

(4).from 模块名 import *

将模块中的所有变量名都放到内存中

如果本文件中有相同的变量名会发生冲突

from 模块名 import * 和 __all__ 是一对,没有这个变量,就会导入所有的变量名

如果有__all__ 只导入__all__ 列表中的名字

三、__name__

我们可以通过模块的全局变量__name__来查看模块名:

当做脚本运行:
__name__ =='__main__'

当做模块导入:

__name__== 模块名

作用:用来控制.py文件在不同的应用场景下执行不同的逻辑

if __name__ == '__main__':

 

转载于:https://www.cnblogs.com/waitstory/p/10485508.html

你可能感兴趣的文章
Java Web 常用在线api汇总(不定时更新)
查看>>
删除本地文件
查看>>
FOC实现概述
查看>>
base64编码的图片字节流存入html页面中的显示
查看>>
这个大学时代的博客不在维护了,请移步到我的新博客
查看>>
GUI学习之二十一——QSlider、QScroll、QDial学习总结
查看>>
[Python设计模式] 第25章 联合国维护世界和平——中介者模式
查看>>
nginx反向代理docker registry报”blob upload unknown"解决办法
查看>>
gethostbyname与sockaddr_in的完美组合
查看>>
kibana的query string syntax 笔记
查看>>
基于Lua插件化的Pcap流量监听代理
查看>>
旋转变换(一)旋转矩阵
查看>>
thinkphp3.2.3 bug集锦
查看>>
[BZOJ 4010] 菜肴制作
查看>>
C# 创建 读取 更新 XML文件
查看>>
KD树
查看>>
VsVim - Shortcut Key (快捷键)
查看>>
C++练习 | 模板与泛式编程练习(1)
查看>>
HDU5447 Good Numbers
查看>>
08.CXF发布WebService(Java项目)
查看>>