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,定义一个函数 ...
随机推荐
- java从文件中读取json
wangxiaoer.json里面存放了json数据 需要依赖common-io.jar
- Struts2 (一)
1 三层架构 2 MVC框架的原理 3 什么是Struts2 Struts2是一个非常优秀的MVC框架,基于Model2设计模式. 是由传统的Struts1和WebWork两个经典的框架发展而来的. ...
- Java Cookie和Session
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- C# Sap Rfc 连接代码实例
根据不同的需求,安装不同位数的 Rfc SDK 1.构造 Sap Adress Information,且继承 IDestinationConfiguration public class SapAd ...
- ipython的用法详解
ipython是一个升级版的交互式python命令行工具. ipython安装 pip install ipython 等到命令执行完成后显示successfully表示完装成功 在命令提示符下输入i ...
- AndroidStudio3更改包名失败
使用Android Studio 3.0 Beta6更改包名refactor---rename一直提示:Refactoring cannot be performedFile xxx\build\xx ...
- BZOJ 1176: [Balkan2007]Mokia [CDQ分治]
题意: 有一个n * n的棋盘,每个格子内有一个数,初始的时候全部为0.现在要求维护两种操作: 1)Add:将格子(x, y)内的数加上A. 2)Query:询问矩阵(x0, y0, x1, y1)内 ...
- Android开发常用的插件及工具
1.GitHub,这个不管是做安卓还是其他,只要是开发就必上的网站,也是天朝没有墙掉为数不多的网站 2.Stack OverFlow,这个和上面一样,国外非常著名的问答网站,在上面基本上很多问题都可以 ...
- 小甲鱼OD学习第3讲
这次我们的任务是破解这个过期的软件,效果如图所示 我们通过阅读代码,知道这个程序的执行流程如图中注释所示 观看下图注释所示 这是失败的提示代码 这是成功的提示代码 最后我们可以得出结论,成功破解软件的 ...
- 用VS2015编译sqlcipher
简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...