Python进阶(八)----模块,import , from import 和 `__name__`的使用
Python进阶(八)----模块,import , from import 和 __name__的使用
一丶模块的初识
#### 什么是模块:
# 模块就是一个py文件(这个模块存放很多相似的功能,函数的集合体)
### 模块的分类:
# 内置模块: 标准库 ,python解释器自带的 ,200多种
# 第三方库: 通过pip install 安装第三方库 6000个
# 自己写的模块: 自己编写的特定功能的py文件
#### 自定义模块:
# 只是第一次引用时, 将此模块加载到内存,
# 执行文件: 被引用文件
二丶模块的导入 import
### 语法 : import 模块名 , 只加载一次(导入就不会再次加载)
### 调用格式 : 模块名 . XX功能
### 引用模块发送三件事:
#1. 把要引入模块加载到内存
#2. 在内存中创建一个以引入模块命名的名称空间
#3. 通过引入模块的名字,以.的方式引入此模块的(变量,函数,类名)
###注意:
# 通过import引入的模块,引入模块中的变量不会受到,当前模块相同名字的变量的影响
# 通过import 引入的模块, 他有自己的独立空间,与当前执行的文件没有关系.
### 起别名: import ...模块 as ...缩写名
# 将一个名字较长的模块名 简化成一个 简单名字
import tbjx as k
print(k.name)
### 同时调用多个模块 ,以,号分隔 (不建议使用, 会使代码清晰,不易维护)
import 模块1, 模块2 ,模块3
三丶from import
### 语法格式: from xxx模块 import 变量 , 只加载一次
from tbjx import func1
print(globals()) # 查看当前文件中的变量, 把需要用的具体变量,从引入模块拷贝一份.
### 特点:
# 优点: 使用起来方便 (更容易快速找到指定的要使用的 功能 )
# 缺点: 容易与当前执行文件产生覆盖效果(如果当前执行的文件中具有和导入的模块 相同名字的变量就会被覆盖.谁先加载,谁先被覆盖)
### 注意: (极端情况,一般没人这么折腾自己)
# 需求: 在引入一个模块的之后,去执行这个模块的中修改模块的某个变量的值. 不会对当前执行文件造成影响.
# 当前执行文件使用的是模块中同一个函数.(只有模块中的变量会被拷贝当前执行文件, 模块中的函数不会被拷贝)
# 引用模块中的函数,如果此模块用到一些变量,这些变量还是从此模块中寻找,不会改变当前执行文件的变量
### 起别名
from tbjx import name as n
##多个导入:
from tbjx import name as n
from tbjx import read1 as r
### * (尽量别用)
from xxx模块 import *
# 全部复制(模块中所有的都被全部加载到内存中), 效率低, 容易覆盖
# from .. import * 与__all__配合使用
# 在引入模块的文件中,创建一个列表 __all__=[变量1,变量2,函数名1,函数名2] 一般写在引入模块最上面
#####推荐:
# 当前执行的文件中 ,不要出现 与 引入模块相同的名字的变量.
四丶模块路径 和 "__name__"的使用
### __name__ 的使用 ,判断当前文件是可执行的脚本,还是模块
# 1. py文件的第一个功能: 执行文件(承载代码)脚本(主动) ,直接打印(__name___)得到__main__
# 2. py文件的第二个功能: 模块(被执行) 直接打印(__name___)得到 模块名
# 补充:
#1.使用pycharm是,点击run 一个.py的文件,(文件包括
Python进阶(八)----模块,import , from import 和 `__name__`的使用的更多相关文章
- Python进阶----pymysql模块的使用,单表查询
Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql 1.下载pymysql包: pip3 install pymysql 2.编写代码 ...
- Python进阶之模块
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很 ...
- Python进阶--常用模块
一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...
- Python进阶之模块与包
模块 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","S ...
- Python基础(八) 模块的引入与定义
模块定义 什么是模块:一个py文件就是一个模块 模块分为三类: 内置模块,(标准库):.python解释器自带的,time,os,sys,等等.200多种. 自定义模块:自己写的模块 第三方库(模块) ...
- Python 进阶_模块 & 包
目录 目录 模块的搜索路径和路径搜索 搜索路径 命名空间和变量作用域的比较 变量名的查找覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模块 ...
- Python进阶03 模块
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前看到了函数和对象.从本质上来说,它们都是为了更好的组织已经有的程序,以方便 ...
- python进阶----logging模块
在工作中经常要打印一些日志,下面介绍一下python中的logging模块 首先,先了解一下日志的级别,主要分为以下5种: debug 最低级别,一般开发用来打印一些调试信息 info ...
- python进阶八_警告和异常
心情有点纠结,怎么说呢,倒不是由于其它学习上的事情,反而是由于生活上狗血的剧情逼着人偏离,渐行渐远,人跟人之间有误会也是正常的,可能是由于交流不够,彼此不够了解吧,希望能尽快度过这一段纠结的日子,简单 ...
随机推荐
- Java对姓名, 手机号, 身份证号, 地址进行脱敏
替换几位就用几个*号 一.姓名 1, 脱敏规则: 只显示第一个汉字,比如李某某置换为李**, 李某置换为李* private static String desensitizedName(String ...
- django入门6引入验证码插件 django-simple-captcha
Django的验证码插件 https://github.com/mbi/django-simple-captcha 安装 (mxonline) C:\Users\ws>pip install ...
- Python3基础 from...import...as 解决局部导入时的函数名重复问题
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- Centos7下的文件压缩
[root@web01 ~]# yum provides zip 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * ba ...
- openvswitch2.11.0修改源码后重新编译(2)
一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ry ...
- MOP tricks
MOP tricks 开新坑,未完待续 觉得有用的话,欢迎一起讨论相互学习~Follow Me Reference [1] Multiobjective Immune Algorithm with N ...
- ireport5.6.0分组显示
一,ireport中分组 二,java调用实现分组 一,ireport中分组: 1,新建模板文件,纸张随意,名称随意,路径随意 2,连接要分组的数据源 3,添加测试表和数据 CREATE TABLE ...
- springboot docker 部署
1.新建一个最简单的springboot项目 https://code.aliyun.com/859143303/hello-world.git 2.src/main/docker下新建Dockerf ...
- ELK 部署相关问题汇总
1.启动es-head问题 因为高版本es-head需要单独启动,所以先要安装npm等工具.安装教程见[1] 启动命令:../elasticsearch-head/node_modules/grunt ...
- PHPExcel 导出数据(xls或xlsx)- 助手类(函数)
本文链接:https://www.cnblogs.com/tujia/p/11358096.html 说明:简单好用的导出助手,轻松导出数据到 excel !! 使用示例: Example: Exce ...