Python基础知识-pycharm版(第11节)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、模块化程序设计理念

1.概念进化史——量变引起质变

语句→函数→类和对象(内容)→模块(文件)→模块(文件)→包(文件夹)

2.标准库模块

模块也分为标准库模块和用户自定义模块

3.模块化编程的流程

模块化编程的一般流程:

  1. 设计API,进行功能描述:API(Application Programming Interface 应用程序编程接口)是用于描述模块中提供的函数和类的功能描述和使用方式描述。
  2. 编码实现API 中描述的功能。
  3. 在模块中编写测试代码,并消除全局代码。
  4. 使用私有函数实现不被外部客户端调用的模块函数。

4.创建

可以通过__doc__可以获得模块的文档字符串的内容。
通过特殊变量__name__可以获取模块的名称

二、模块的导入

1.import语句导入

import 语句的基本语法格式如下:
	import 模块名         #导入一个模块
	import 模块1,模块2…   #导入多个模块
	import 模块名as 模块别名  #导入模块并使用新名字

通过import 语句实现模块的导入和使用,import 本质上是使用了内置函数__import__()。

2.from…import导入

基本语法格式如下:
from 模块名import 成员1,成员2,…
如果希望导入一个模块中的所有成员,则可以采用如下方式:
from 模块名import *

【注】尽量避免“from 模块名import *”这种写法,很有可能,会覆盖掉你之前已经定义的名字,而且可读性极其的差。

3.import 语句和from…import 语句的区别

import 导入的是模块。from…import 导入的是模块中的一个函数/一个类。如果进行类比的话,import 导入的是“文件”,我们要使用该“文件”下的内容,必须前面加“文件名称”。from…import 导入的是文件下的“内容”,我们直接使用这些“内容”即可,前面再也不需要加“文件名称”了。

4.import()动态导入

使用__import__()动态导入指定的模块
s = "math"
m = __import__(s) #导入后生成的模块对象的引用给变量m
print(m.pi)

一般不建议自行使用__import__()导入,其行为在python2 和python3 中有差异,会导致意外错误。如果需要动态导入可以使用importlib 模块。

import importlib
a = importlib.import_module("math")
print(a.pi)

5.模块的加载

一个模块无论导入多少次,这个模块在整个解释器进程内有且仅有一个实例对象。确实需要重新加载一个模块,这时候可以使用:importlib.reload()方法:

import test02
import test02
print("####")
import importlib
importlib.reload(test02)

三、包的使用

1.创建

本质上,“包”就是一个必须有__init__.py 的文件夹。。在要创建包的地方单击右键:New–>Python
package 即可。pycharm 会自动帮助我们生成带有__init__.py 文件的包。

2. 导入包

需要导入module_AA.py。方式如下:

  1. import a.aa.module_AA
    在使用时,必须加完整名称来引用,比如:a.aa.module_AA.fun_AA()
  2. from a.aa import module_AA
    在使用时,直接可以使用模块名。比如:module_AA.fun_AA()
  3. from a.aa.module_AA import fun_AA 直接导入函数
    在使用时,直接可以使用函数名。比如:fun_AA()
    【注】1. from package import item 这种语法中,item 可以是包、模块,也可以是函数、
    类、变量。2. import item1.item2 这种语法中,item 必须是包或模块,不能是其他。
    导入包的本质其实是“导入了包的__init__.py”文件。这样,可以在__init__.py 中批量导入我们需要
    的模块,而不再需要一个个导入。

3.包内引用

以aa 包下的module_AA 中导入a包下内容为例:
from … import module_A #…表示上级目录.表示同级目录
from . import module_A2 #.表示同级目录

4.sys.path 和模块搜索路径

按照顺序寻找,找到即停不继续往下寻找:

  1. 内置模块
  2. 当前目录
  3. 程序的主目录
  4. pythonpath 目录(如果已经设置了pythonpath 环境变量)
  5. 标准链接库目录
  6. 第三方库目录(site-packages 目录)
  7. .pth 文件的内容(如果存在的话)
  8. sys.path.append()临时添加的目录
使用sys.path 查看和临时修改搜索路径
import sys
sys.path.append("d:/")
print(sys.path) #打印当前模块搜索的路径

四、模块发布和安装

1.本地发布

2.本地安装模块

将发布安装到你的本地计算机上。仍在cmd 命令行模式下操作,进setup.py 所在目录,键入命令:python setup.py install

3.上传模块到PyPI

4. 让别人使用你的模块

模块发布完成后,其他人只需要使用pip 就可以安装你的模块文件。比如:
pip install package-name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值