模块的四种形式、 import和from...import、 循环导入问题、模块的搜索路径、 python文件的两种用途
模块的四种形式
Nike推荐的学数据分析与算法的书《利用python进行数据分析》
模块
相当于应用软件
- 系统自带应用软件
- 需要下载的应用软件
- 自定义的软件
模块的四种形式
内置模块:python解释器自带的模块,
pip、pycharm安装的模块
自定义模块——》自定义代码
什么是模块?
模块——》实现功能——》代码——》
包(模块)
import和from...import
导入模块
- 开辟内存空间,内存空间命名为time
- 把time。py代码读入内存名称空间然后运行
- 通过time.方法名使用模块中的方法
from 模块名 import方法名
- 开辟内存空间,内存空间命名为time
- 把time。py代码读入内存名称空间然后运行
- 把sleep()读入当前文件名.py文件中(就是当前文件),因此可以直接使用方法名
如果想使用多个方法:
- from 模块 import 方法1,方法2
- from 模块 import * 这种方式会将模块所有的方法全部导入,容易与主程序变量名发生冲突,最好不要使用。
import的优缺点
优点:永远不会和变量名冲突
缺点:每次导入多输几个字
from 模块名 import 方法名的优缺点
优点:少输几个字
缺点:易发生冲突
自定制模块
自己写的一个.py文件就是一个自定义的模块,文件名就是模块名。模块名不要和python自带模块冲突。
用途:分文件存储代码——》函数与函数之间分开——》让代码块更加清晰——》不同的模块干不同的事情
循环导入问题
模拟问题的发生:
在pycharm里创建两个文件,m1.py、m2.py
m1里写下如下文件
print('from m1.py')
from m2 import x
y = 'm1'
- m2里写下如下文件
print('from m2.py')
from m1 import y
如果运行m1文件就会报错‘cannot import name 'x'’
解决方案
方案一
将对自定义的模块调用都放入函数中,这样就只有使用模块时才会调用模块,从而避免两个程序以相互调用的逻辑出现。
#m1.py
print('from m1.py')
def func1():
from m2 import x
print(x)
y = 'm1'
#m2.py
print('from m2.py')
def func1():
from m1 import y
print(y)
x = 'm2'
方案二
将对模块的导入放要调用的变量下面(以后都用方案一)
# m1.py
print('from m1.py')
y = 'm1'
from m2 import x
# m2.py
print('from m2.py')
x = 'm2'
from m1 import y
模块的搜索路径
模块的搜索顺序可以通过在主程序内读入一个模块,让主程序调用模块运行一段时间,在这段时间内将此模块删除来判断程序对模块路径的搜索顺序。(为了防止不必要的错误发生,以后程序的文件名尽量用英文命名)
内存
内置
自定义
内存——》内置——》自定义
Python文件的两种用途
python文件共有两种用途,一是执行文件,二是本当做模块导入。
编写好的一个python文件可以有两种用途:
- 脚本,用来被执行
- 模块,用来被导入
if _name_ == '__main__':的使用
if __name__ == '__main__':用于当调用模块时,不想让模块中的某个函数或者代码执行,也可以用于只让某个函数或者代码块执行。__name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名,if只是一个普通的判断语句。
模块的四种形式、 import和from...import、 循环导入问题、模块的搜索路径、 python文件的两种用途的更多相关文章
- 模块导入及使用,关键字,模块搜索路径,python文件的两种用途
06.05自我总结 一.模块导入及使用 1.模块导入的两种方式 我们拿time模块并使用其中的time功能进行举例 a)第一种 import time print(time.time) import首 ...
- python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)
一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...
- Python 1-3区分Python文件的两种用途和模块的搜索路径
区分Python文件的两种用途 run.py文件: import m1 m1.py文件: def f1(): print('f1') def f2(): print('f2') #当文件被执行时__n ...
- Python文件的两种用途
目录 一.Python文件的两种用途 一.Python文件的两种用途 python文件总共有两种用途,一种是执行文件:另一种是被当做模块导入. 编写好的一个python文件可以有两种用途: 脚本,一个 ...
- 第九章、python文件的两种用途
目录 第九章.python文件的两种用途 一.用途 第九章.python文件的两种用途 一.用途 当前运行的文件(脚本) 被导入的文件(模块) # aaa.py x = 1 def f1(): pri ...
- 从模块到python文件的两种用法
01模块的四种形式 模块 就是从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名是test.py的话,它的对应模块名就是test) 包 用 ...
- 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用
2018年3月19日 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5 ...
- 加载xib文件的两种方式
一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...
- elf格式转换为hex格式文件的两种方法
这周工作终于不太忙了,可以写点笔记总结一下了. 之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次 ...
随机推荐
- lua源码学习篇三:赋值表达式解析的流程
上节说到表达式的解析问题,exprstate函数用于解析普通的赋值表达式.lua语言支持多变量赋值.本文先从单变量赋值表达式讲起. a = b = c = a + b 对于简单的两个数的求和过程,lu ...
- Python Module_openpyxl_styles 样式处理
目录 目录 前言 系统软件 Working with styles Styles can be applied to the following aspects Styles模块 Copying st ...
- 中国MOOC_零基础学Java语言_第3周 循环_2数字特征值
2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...
- 6.824 Lab 3: Fault-tolerant Key/Value Service 3A
6.824 Lab 3: Fault-tolerant Key/Value Service Due Part A: Mar 13 23:59 Due Part B: Apr 10 23:59 Intr ...
- python3 基本数据类型_2
#!/usr/bin/python3 #以下set,dict的方法py2无法运行 #创建set 集合,使用大括号 { } 或者 set() 函数创建 #注意:创建一个空集合必须用 set() 而不是 ...
- ElasticSearch入门 —— 集群搭建
一.环境介绍与安装准备 1.环境说明 2台虚拟机,OS为ubuntu13.04,ip分别为xxx.xxx.xxx.140和xxx.xxx.xxx.145. 2.安装准备 ElasticSearch(简 ...
- 【ABAP系列】SAP ABAP 的替代和校验
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 的替代和校验 ...
- 深入理解java:1.1.1. 反射机制
反射 到底什么是反射(Reflection)呢? 反射有时候也被称为内省(Introspection),事实上,反射,就是一种内省的方式, Java不允许在运行时改变程序结构或类型变量的结构,但它允许 ...
- win10安装mysql时报错[MY-012576] [InnoDB] Unable to create temporary file; errno: 2
报错信息 解决: 在my.ini文件里面的 [mysqld]区段内加入: #自己指定的临时文件目录 tmpdir="临时目录" 添加好后初始化成功 接下来启动mysql服务的时候报 ...
- jenkins shell 取当前时间
now=`date +%Y%m%d%H%M%S` echo $now newfilename=abc_${now}.warfor i in `ls *.jmx`:dojmeter -n -t $i r ...