第15课 模块与包
一、同一包里面模块的调用
1、模块的概念
1)一般的行数--500到800行
2)一个xxx.py文件就称为一个模块(module)
2、模块化的其他好处
1)以库的形式封装功能,方便给别的代码调用。
a、库其实就是模块和包
b、可以使用自己写的库,python标准库和第三方库
2)避免变量名冲突(包括函数名)
a、如果一个代码文件特别大,变量名就容易发生重复。这是,需要定义不同的变量名和函数名
b、如果采用模块分割代码,每个模块文件代码都不是很多,就可以缓解这个问题
c、每个模块中变量名的作用域只在本模块中
3、模块的使用
1)同一个包里面的模块调用:import 模块名---执行模块
import mathFunction # 导入模块名# 执行结果******begin mathFunction!****** ******end mathFunction!******
2)函数/变量的调用---模块名.函数
import mathFunction # 导入模块名 mathFunction.sumFun(1, 2)# 执行结果 ******begin mathFunction!****** ******end mathFunction!****** 1 + 2 = 3
3)from 模块名 import 函数名/变量
from mathFunction import sumFun sumFun(1, 2)# 执行结果******begin mathFunction!****** ******end mathFunction!****** 1 + 2 = 3
4)导入多个函数/变量(这个方法只作为了解)
from mathFunction import sumFun, VERSION, difFun sumFun(1, 2) print(VERSION) difFun(9, 3)# 执行结果******begin mathFunction!****** ******end mathFunction!****** 1 + 2 = 3 1.0 9 - 3 = 6
5)全部导入:import 模块名 == from 模块 import *
from mathFunction import * sumFun(58, 69) difFun(108, 36)# 执行结果 ******begin mathFunction!****** ******end mathFunction!****** 58 + 69 = 127 108 - 36 = 72
6)导入多个模块:import module1, module2 或者如下:
import 模块1
import 模块2
from mathFunction import sumFun import lib1sumFun(12, 13)# 执行结果 ******begin mathFunction!****** ******end mathFunction!****** ******lib1******* 12 + 13 = 25
4、导入函数或者变量取别名:from lib2 import sumFunc as blibF
1)as---取别名 好处:避免冲突、长名字缩短
from lib2 import sumFun as blibF from mathFunction import sumFun as mathFblibF(2, 5) mathF(3, 8)# 执行结果******lib2_begin****** ******end****** ******begin mathFunction!****** ******end mathFunction!****** 2 + 5 + 5 = 12 3 + 8 = 11
二、不同包里面模块的调用
1、把许多模块按照功能放到不同的目录中来组织模块,这些存放模块文件的目录称之为包(package)。
2、import 包名.模块名
3、只要去导入这个包,对应的__init__.py会被执行
import sys sys.path.append('D:\work\HelloWorld\songqin\python') # 一定要添加环境变量 import newP.newPTest newP.newPTest.newP()# 执行结果 I am newPtest.__init__.py *********newPTest********* newPFun!
4、包里面包含子包的导入方法
import sys sys.path.append('D:\work\HelloWorld\songqin\python') import newP.sonP.sonPTest newP.sonP.sonPTest.sonP()# 执行结果 I am newPtest.__init__.py ---sonPTest--- HelloPython!
对于比较长的导包,使用别名,更方便。
import sys sys.path.append('D:\work\HelloWorld\songqin\python') import newP.sonP.sonPTest as newPp # 对于比较长的导包,最好用别名 newPp.sonP()# 执行结果 I am newPtest.__init__.py ---sonPTest--- HelloPython!
三、联合使用
1、标准库:python安装包里面提供的功能模块和包。主要包括:
1)内置类型和函数。比如len()、int()、open()等,可以直接使用,不用import。
2)功能模块:包含程序设计所需的常用的功能;需要用import导入它们就可以使用
import time print(time.strftime('%Y_%m_%d %H:%M:%S')) # 获取系统当前时间# 执行结果 2018_12_09 23:49:25
2、模块的搜索规则:
1)import sys----sys.path:解释器加载的路径
>>> import sys >>> sys.path ['', 'E:\\software\\python\\Lib\\idlelib', 'E:\\software\\python\\python36.zip', 'E:\\software\\python\\DLLs', 'E:\\software\\python\\lib', 'E:\\software\\python', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32\\lib', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\Pythonwin', 'E:\\software\\python\\lib\\site-packages']# 'E'前面的空格,意思为当前目录
3、增加模块路径
1)cmd----set PYTHONPATH=F:\;G:\---最终到sys.path里面
>>> import sys >>> sys.path ['', 'E:\\software\\python\\python36.zip', 'E:\\software\\python\\DLLs', 'E:\\software\\python\\lib', 'E:\\software\\python', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32\\lib', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\Pythonwin', 'E:\\software\\python\\lib\\site-packages'] >>> ^ZC:\Users\62588>set PYTHONPATH=F:\C:\Users\62588>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', 'F:\\', 'E:\\software\\python\\python36.zip', 'E:\\software\\python\\DLLs', 'E:\\software\\python\\lib', 'E:\\software\\python', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32\\lib', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\Pythonwin', 'E:\\software\\python\\lib\\site-packages']# 原来环境变量只有E盘,后来通过set PYTHONPATH=F:\,添加F盘
2)sys.path.append('路径')-----临时增加
import sys print(sys.path)#执行结果 ['D:\\software\\HelloWorld\\songqin\\python\\lesson18 模块与包_使用库', 'D:\\software\\HelloWorld', 'E:\\software\\python\\python36.zip', 'E:\\software\\python\\DLLs', 'E:\\software\\python\\lib', 'E:\\software\\python', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32\\lib', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\Pythonwin', 'E:\\software\\python\\lib\\site-packages', 'D:\\software\\pycharm\\helpers\\pycharm_matplotlib_backend']
添加环境变量
sys.path.append('E:\\') # 这里写两个\,是为了防止第一个\被转义 print(sys.path)#执行结果,尾部添加了E盘 ['D:\\software\\HelloWorld\\songqin\\python\\lesson18 模块与包_使用库', 'D:\\software\\HelloWorld', 'E:\\software\\python\\python36.zip', 'E:\\software\\python\\DLLs', 'E:\\software\\python\\lib', 'E:\\software\\python', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\win32\\lib', 'C:\\Users\\62588\\AppData\\Roaming\\Python\\Python36\\site-packages\\Pythonwin', 'E:\\software\\python\\lib\\site-packages', 'D:\\software\\pycharm\\helpers\\pycharm_matplotlib_backend', 'E:\\']
3)pip下载第三方库---lib或者lib/site-package
4)pip安装源--默认国外 ,可以修改为国内的安装源,比如豆瓣。
5)卸载---pip uninstall selenium
6)升级--举例:升级pip---pip install upgrade pip或者 pip install -u pip
7)升级指定的版本:pip install SomePackage == 1.0.4 ; pip install SomePackage >= 1.0.4
转载于:https://www.cnblogs.com/nick1998/p/10091323.html
第15课 模块与包相关推荐
- dllimport 找不到指定的模块_Python语法基础(15)模块与包
模块与包 模块 Python 中一个以 .py 结尾的文件就是一个模块,模块中定义了变量.函数等来实现一些类似的功能.Python 有很多自带的模块(标准库)和第三方模块,一个模块可以被其他模块引用, ...
- python中级第九课--模块和包(小白piao分享)
模块和包 概念: 模块:每个独立的py文件 包:描述模块组织构成 例如: #包: package1/__init__.pysub_package1/__init__.p ...
- python-学习 协程函数 模块与包
一.协程函数 yield的用法: 1:把函数的执行结果封装好__iter__和__next__,即得到一个迭代器2:与return功能类似,都可以返回值,但不同的是,return只能返回一次值,而yi ...
- python基础---模块与包
1.模块导入方法 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,导入模块可以实现功能的重复利用 import加载的模块分为四个通用类别: 1 使 ...
- python一年收入_你的年收入过5万了吗?数据科学家的Python模块和包
全文共2327字,预计学习时长15分钟 图源:unsplash 笔者刚开始学习给数据科学编程时,发现要找到创建模块和包的简单解释以及教程非常困难,尤其是数据科学项目方面. 数据科学代码通常是非常线性的 ...
- pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用
第15课 舵机的使用 舵机的旋转不像普通电机那样只是转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来.舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的. ...
- python中使用什么导入模块-Python中使用语句导入模块或包的机制研究
这篇文章讨论了Python的from import *和from import *,它们怎么执行以及为什么使用这种语法(也许)是一个坏主意. 从一个模块导入全部 from import * means ...
- Python 中的黑暗角落(三):模块与包
如果你用过 Python,那么你一定用过 import 关键字加载过各式各样的模块.但你是否熟悉 Python 中的模块与包的概念呢?或者,以下几个问题,你是否有明确的答案? 什么是模块?什么又是包? ...
- Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)
↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 本文不查错,三连送书 最近很多读者想学习使用python来制作游戏,其中最经典的工具包就是Pygame ,如果单 ...
- python - 啃书 第七章 模块、包和库 (一)
概述 在Python中,一个模块(Module)是一个以.py结尾的Python文件,包含了Python对象和语句. 在python中,一切皆对象.数字.字符串.元组.列表.字典.函数.方法.类.模块 ...
最新文章
- Liferay 6.1 用maven 构建 service-builder的巨大BUG的修复
- python使用符号 标示注释-第一章:Python语言程序设计
- Python常用的几种去重方式
- Leetcode--16. 最接近的三数之和
- arcgis字段计算器无法赋值_Arcgis空间连接工具的妙用
- Java LocalDate类| 带示例的getEra()方法
- mysql or 短路_MySQL是否使IF()函数短路?
- 6Linux 终端命令格式
- React Native ActivityIndicator(菊花组件)
- 离散数学复习笔记(已完结)
- Java实现密码加密
- [转]条形码 EAN 8 码 / EAN 13 码
- 【在线学习版】欢迎使用Markdown编辑器(可以多开网页看着编辑)
- IMWeb小白-诗歌作业
- bsdiff算法c语言实现,bsdiff的使用
- 按图搜索1688商品接口(item_search_img-按图搜索1688商品(拍立淘接口)代码对接教程
- 少年派 —— 之 读书
- 第二课、《抓包学习——美团评论》
- 身份证号,手机号校验
- 数据库中top的用法