一、同一包里面模块的调用

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课 模块与包相关推荐

  1. dllimport 找不到指定的模块_Python语法基础(15)模块与包

    模块与包 模块 Python 中一个以 .py 结尾的文件就是一个模块,模块中定义了变量.函数等来实现一些类似的功能.Python 有很多自带的模块(标准库)和第三方模块,一个模块可以被其他模块引用, ...

  2. python中级第九课--模块和包(小白piao分享)

    模块和包 概念: 模块:每个独立的py文件         包:描述模块组织构成         例如: #包: package1/__init__.pysub_package1/__init__.p ...

  3. python-学习 协程函数 模块与包

    一.协程函数 yield的用法: 1:把函数的执行结果封装好__iter__和__next__,即得到一个迭代器2:与return功能类似,都可以返回值,但不同的是,return只能返回一次值,而yi ...

  4. python基础---模块与包

    1.模块导入方法 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀,导入模块可以实现功能的重复利用 import加载的模块分为四个通用类别: 1 使 ...

  5. python一年收入_你的年收入过5万了吗?数据科学家的Python模块和包

    全文共2327字,预计学习时长15分钟 图源:unsplash 笔者刚开始学习给数据科学编程时,发现要找到创建模块和包的简单解释以及教程非常困难,尤其是数据科学项目方面. 数据科学代码通常是非常线性的 ...

  6. pwm控制舵机转动角度程序_Mixly 第15课 舵机的使用

    第15课  舵机的使用 舵机的旋转不像普通电机那样只是转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来.舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的. ...

  7. python中使用什么导入模块-Python中使用语句导入模块或包的机制研究

    这篇文章讨论了Python的from import *和from import *,它们怎么执行以及为什么使用这种语法(也许)是一个坏主意. 从一个模块导入全部 from import * means ...

  8. Python 中的黑暗角落(三):模块与包

    如果你用过 Python,那么你一定用过 import 关键字加载过各式各样的模块.但你是否熟悉 Python 中的模块与包的概念呢?或者,以下几个问题,你是否有明确的答案? 什么是模块?什么又是包? ...

  9. Python游戏工具包---Pygame最常用的15个模块详解(附pdf版本)

    ↑ 点击上方 "一行数据" 关注 + 星标 ~ 每周送书,绝不错过 本文不查错,三连送书 最近很多读者想学习使用python来制作游戏,其中最经典的工具包就是Pygame ,如果单 ...

  10. python - 啃书 第七章 模块、包和库 (一)

    概述 在Python中,一个模块(Module)是一个以.py结尾的Python文件,包含了Python对象和语句. 在python中,一切皆对象.数字.字符串.元组.列表.字典.函数.方法.类.模块 ...

最新文章

  1. Liferay 6.1 用maven 构建 service-builder的巨大BUG的修复
  2. python使用符号 标示注释-第一章:Python语言程序设计
  3. Python常用的几种去重方式
  4. Leetcode--16. 最接近的三数之和
  5. arcgis字段计算器无法赋值_Arcgis空间连接工具的妙用
  6. Java LocalDate类| 带示例的getEra()方法
  7. mysql or 短路_MySQL是否使IF()函数短路?
  8. 6Linux 终端命令格式
  9. React Native ActivityIndicator(菊花组件)
  10. 离散数学复习笔记(已完结)
  11. Java实现密码加密
  12. [转]条形码 EAN 8 码 / EAN 13 码
  13. 【在线学习版】欢迎使用Markdown编辑器(可以多开网页看着编辑)
  14. IMWeb小白-诗歌作业
  15. bsdiff算法c语言实现,bsdiff的使用
  16. 按图搜索1688商品接口(item_search_img-按图搜索1688商品(拍立淘接口)代码对接教程
  17. 少年派 —— 之 读书
  18. 第二课、《抓包学习——美团评论》
  19. 身份证号,手机号校验
  20. 数据库中top的用法

热门文章

  1. Karl Rove和Dick Cheney加入了REST争论
  2. DAP数据加工流程梳理
  3. ArcGIS教程:Workflow Manager的基本词汇
  4. cisco3560交换机的策略路由的设置
  5. word2vec源码详解
  6. IDM+百度网盘提速下载复活版
  7. 如何将JPG转换成PNG格式呢?
  8. C++核心准则边译边学-不必惊慌!
  9. flac转换成mp3,flac转mp3方法
  10. qemu启动openEuler Embedded镜像