Python第六章---模块与包

6.1.模块(Modules)

6.1.1.概念:将实现某一特定功能的代码放置在一个文件中,以便于其它程序进行导入使用,可以避免函数名,变量名的冲突,该文件称未模块,扩展名为 .py

6.1.2作用:

  • 模块=函数+类+变量
  • 程序规模不断变大需要分为多个文件,以提高维护性
  • 模块可以重复的导入,提高重用性

6.1.3.分类

内置模块:当前使用,python内置模块大概有200多个标准模块

sys解释器及系统相关
time时间模块
urllib读取互联网服务的标准库
nath数学类
re正则

自定义模块:第三方模块

6.1.4.模块导入的常见的方法:五种

  • import   模块莫名
  • from   模块名   import 功能名
  • from   模块名    import  *
  • import   模块名   as   别名
  • from    模块名  import   功能名    as    别名

6.1.5.使用import  导入模块

  • import   模块名
  • import   模块名1,模块名2.。。。。#(导入多个模块)
import   math
print(math.sqrt(9))

6.1.6.使用from......import语句导入模块

作用:使用import导入模块时如果只需要部分函数可以通过from语句实现

注意:使用时不需要增加模块名前缀

from   math   import  sqrt,floor

print(sqrt(9)),floor(10.88)

6.1.7.使用as关键字为导入模块定义别名

原因:某些情况下模块名称过长,建议使用as命名一个较为短的新名称,调用时使用新名称进行操作

import  time as t

print('hello')
t.sleep(3)
print('world')

注意:使用from......import导入模块,必须保证导入内容名称时唯一,若导入的模块有相同的变量,函数,类则会覆盖之前导入的同名内容,因此需要检查,别名应简洁

6.1.8.自定义模块

作用:将相关的代码写在一个单独文件中,自行创建的模块名称不能与标准中的模块名重名

例1:新建一个模块文件,实现素数判断

        在当前目录下新建文件prim.py

        输入代码

def fun_prime(num):
    if num < 2:
        print('请输入大于2的整数')
    else:
        for i in range(2, num):
            if num % i == 0:
                return 0
        else:
            return 1

新建一个Python文件加载上述模块,实现100以内的素数

import prime

for i in (2, 100):
    if prime.fun_prime(i) == 1:
        print(i, end=' ')

自定义模块的功能测试
        作用:在编写完自定义模块以后,最后在模块中对代码进行提前测试,以防止抛出异常

        魔方方法:_ _name_ _():每个模块的定义中都包括一个记录模块名称的字符串变量(_ _name_ _),随着运行的页面不同,返回不同

        当前页面执行:返回结果为_ _main_ _

print(__name__)

def fun_prime(num):
    if num < 2:
        print('请输入大于2的整数')
    else:
        for i in range(2, num):
            if num % i == 0:
                return 0
        else:
            return 1

在其他文件调用执行:模块文件名

        随着程序执行的位置不同,_ _name_ _返回结果也不同, 结论:模块

def fun_prime(num):
    if num < 2:
        print('请输入大于2的整数')
    else:
        for i in range(2, num):
            if num % i == 0:
                return 0
        else:
            return 1
if  __name__=='__main__':  #如果是当前页面执行
    if fun_prime((5)):
        print('素数')
    else:
        print('平数')

#此时不需要其它程序就可以在本文件着中执行

注意:_ _name_ _ 一般用于自定义模块测试,还可以用于编写程序的入口:

def    main():

# 执行功能

#打印的功能

#增删的功能

if  _ _name_ _=='_ _name_ _ '

        main()

6.1.9.模块搜索目录

当前用import语句导入模块时,默认情况会按照一下顺序查找

  • 执行python文件的当前目录
  • python(环境变量)
  •  python解释器安装目录

可以通过sys.path中查找搜索目录

import  sys

print(sys.path)

6.2 .包(package)

6.2.1.概念:将有连续的模块组织在一起,放置到同一个文件夹下,并且该文件内部有一个名_ _init_ _.py的文件,此文件夹集合称为包

 6.2.2._init_ _.py文件再创建包后会自动新建,默认为空,其作用:

包的标识,不能删除

定义all语句来规定哪些模块可以导入(白名单)

编写python代码(不推荐),应内容简略

6.2.3制作包

方法:左侧侧边栏点击右键->New->Python Package->输入包名称->回车->在包中新建模块

注意:新建包后,_init_ _.py会自动创建

6.2.4导入包:

格式1:import包名 .模块名(包.模块名.方法名形式进行使用)

格式2:from包名import 模块名(模块.方法名 进行使用)

注意:格式2的from形式导入的包中某个模块时,必须在_init_ _.py中添加all=['模块1.py','模块2.py‘,'模块.py]

6.7.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值