python导入模块
1、模块的定义:
模块定义:用来逻辑上组织python代码(变量、函数、类、逻辑;目的是:实现一个功能),本质就是.py结尾的python文件。 补充:
包的定义:用来从逻辑组织模块的,本质就是一个目录(必须带有一个__init__.py文件)
2、导入方法:
导入模块的方法:
1.import module_name 导入一个模块
使用的时候需要加上前缀module_name.name
2.import module_name,module2_name 导入多个模块
3.from module_name import * 导入module_name模块里边的所有变量,不建议使用!
4.from module_name import name 只导入module_name里边的name解释了一遍。
使用的时候直接 name 调用即可
import 和from 的区别
1.import 的时候 module_name.logger()
2.from 的时候 logger() 直接执行;from的时候等于把所有代码都复制了一份,执行一下。 解释器:做的事就是指定一个变量 并指向一个内存地址,将代码内容放在了内存地址里边。 导入包的方法:
import 包的名字 多级目录导入方法:
查看当前路径:
import sys
sys.path
查找父及目录
import os
os.path.abspath(__file__)
abspath() 当前文件的绝对路径
__file__ 当前文件的文件名
os.path.dirname(os.path.abspath(__file__))
dirname() 获取目录名
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
路径加入
sys.path.append() 这样会把路径加入到python系统路径列表的最后,不利于快速查找。
sys.path.insert() 这样就会把路径加入到python系统路径列表的最前边。
例子:
import sys,os
print(sys.path)
a = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(a)
print(sys.path)
from xxx import xxx 3、import本质(路径搜索和搜索路径) 导入模块的本质: 就是把python文件解释一遍
分析:import module_name - - -》就是要解释module_name.py- - -》首先要找到module_name.py的位置- - -》查找系统路径sys.path,当前路径优先。 导入包的本质:就是执行该包下的__init__.py文件 导入包下边的test1.py文件
1.修改__init__.py文件,导入包下边的py文件
from . imprt test1
#import test1
2.在py文件中导入包下边的模块test1.py文件 4、导入优化
例如:
优化前:
module_test.py
def test():
print ("in the test!")
test.py
import module_test
def logger():
module_test.test()
print("in the logger!")
def search():
module_test.test()
print("in the search!")
优化后:
module_test.py
def test():
print ("in the test!")
test.py
from module_test import test
def logger():
test()
print("in the logger!")
def search():
test()
print("in the search!")
注意:
如果导入模块的方法和目前环境中有冲突,导入的时候可以设置别名:
from module_test import test as test01
python导入模块的更多相关文章
- Python导入模块的三种形式
Python导入模块的3中方式: 1.import module_name 这样在程序里就可以通过module_name.metnod_name()的方式访问模块里的函数了 Example: > ...
- python 导入模块 import 理解
--python 导入模块 import 理解 -----------------------------------2014/03/18 python 导入一个模块的过程要求有一个叫做“路径搜索”的 ...
- python导入模块时的执行顺序
当python导入模块,执行import语句时,到底进行了什么操作?按照python的文档,她执行了如下的操作: 第一步,创建一个新的module对象(它可能包含多个module) 第二步,把这个mo ...
- selenium + python自动化测试unittest框架学习(四)python导入模块及包知识点
在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个mo ...
- python 导入模块与使用
学习python之前一定要了解导入模块是怎么导入的,至少在看代码时不知道能很快的了解别人写的东西是哪里来. Python默认仅安装部分基础或核心模块,启动时也仅加载了基础模块,在需要是再显式的加载其他 ...
- python 导入模块的坑。为什么整个项目能运行,单独运行某个文件模块就报错?多层目录不同文件夹怎么导入?
一些文章介绍了python不同目录怎么导入问题,但py文件运行起点却从来没有文章说过!这是相当重要的!! 这个连接是网上99%的所讲的导入 https://www.cnblogs.com/luoye0 ...
- python导入模块总结与分析
定义1:python中什么是模块? 答:模块就是一个.py文件,每一个以py作为后缀的文件,都是一个模块. 定义2:Python中什么是包? 答:包是一类特殊的模块,他能包含其他模块,为了更好的组织模 ...
- 转载 Python导入模块的几种姿势
作为一名新手Python程序员,你首先需要学习的内容之一就是如何导入模块或包.但是我注意到,那些许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活.在本文中,我们将探讨以下 ...
- Python导入模块Import和from+Import区别
在我们使用python的时候会发现使用Import可以导入模块,from+Import也可以,那么他们之间有什么区别,该用哪一种呢?让我们来看看 1.首先在demo.py中创建一个变量a,定义一个函数 ...
随机推荐
- Sql Server的艺术(三) SQL聚合函数的应用
SQL提供的聚合函数有求和,最大值,最小值,平均值,计数函数等. 聚合函数及其功能: 函数名称 函数功能 SUM() 返回选取结果集中所有值的总和 MAX() 返回选取结果集中所有值的最大值 MIN( ...
- echarts中视觉映射器(visualMap)与时间轴(timeline)混用的实现方法
1.简述 echarts中的 timeline 组件,提供了在多个 ECharts option 间进行切换.播放等操作的功能. 与其他组件些不同,它需要操作『多个option』. 所以除了基准的ba ...
- WEB消息推送-原理篇
这篇文章主要讲述B/S架构中服务器“推送”消息给浏览器.内容涉及ajax论询(polling),comet(streaming,long polling).后面会附上源代码. 最近在工作有这么一个需求 ...
- Yii的Relational Active Record三张表连接查询
需求如下: 查询book表信息,同时关联entitystags表,以entitystags的字段eid关联book的主键,再关联查询tags表,以entitystags表的tid字段关联tags表的主 ...
- MOBA服务器开发第一阶段完成总结
开发历程 项目是从8月20日左右开始开发的,到今天一个月不到吧. 除了底层库和服务器架构外我们大致开发了5个服务器为: 一 ) . 战斗服务器 二 ) . 匹配服务器 三 ) . 验证服务器 四 ) ...
- POJ1509 Glass Beads [后缀自动机]
题意: 给一个字符串S,每次可以将它的第一个字符移到最后面,求这样能得到的字典序最小的字符串.输出开始下标 练习SAM第一题! SS构造SAM,然后从开始尽量走最小走n步就可以啦 什么?开始位置?!R ...
- 小甲鱼OD学习第6讲
这次我们的任务是破解这个通讯录的软件,首先,我们在通讯录一个分组添加第5个人,发现弹出对话框,限制每组只能添加4个人 并且发现最多只能添加3个分组 我们把程序载入OD,运行,添加人,这个时候点击暂停, ...
- 在C#中“?”有三种用法
在C#中“?”有三种用法. 1.可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的.int i=null:编译器将 ...
- 对Javascript到底了解多少,一测便知道
笔者在这里附上一段代码,请读者思考一下程序的运行结果: console.log(a); //??? a(); var a=3; function a(){ console.log(10); } con ...
- 关于字符型char变量
写程序时,意外发现个很不容易察觉问题出在哪的问题的 scanf("%c",&ch); scanf("%c",&c); printf(" ...