Python学习总结(七)模块与包

一、模块(module)

模块是 python 程序架构的一个核心概念

  • 模块 就好比是 工具包,要想使用这个工具包,就需要用关键字import导入
  • 每一个以扩展名py结尾的python源代码都是一个模块
  • 在模块中定义的 全局变量函数 都是模块能够提供给外界直接使用的工具

模块的导入

关键字作用备注
import 模块导入指定模块的全部1.如果模块名过长多个模块具有相同方法名,使用关键字 as 为他们起别名 2.调用模块的方法时需要用模块.方法()模块.属性或的形式
from 模块 import 工具名导入一个模块的部分工具这样导入之后,直接使用工具名对应的函数即可;如果有多个模块具有相同的方法名,使用as为这些同名方法取不同别名
as为一个变量取别名为模块取别名应该满足大驼峰命名法,例如:import module_1 as Md_1

模块的搜索顺序

  1. 首先在 当前目录 搜索
  2. 如果当前目录没有搜索到,则进入 系统目录 进行搜索

因此,如果在当前目录下有模块和Python自带的模块同名,则只会使用当前目录下的模块。故在给自己当前目录下的模块起名时,应该避免和系统模块起相同的名字

__file __
如果使用import导入了一个模块,使用 __file __ 可以查看该模块的路径。ex.

import random
print(random.__file__)

输出:
在这里插入图片描述


测试模块语句

当使用import导入一个模块时,模块内所有没有缩进的代码都会被执行。而开发一个模块时一定要对这个模块进行测试,这便形成有如下方法。

使用 __name __ 写测试语句
__ name __ 的特点
  1. __name __ 用来保存字符串
  2. 在本模块中它的值恒为 __main __
  3. 如果一个模块A导入了另一个模块B,那么 模块B.__main __ 值为 "模块B"

因此,测试可以如下进行:
如果是在被导入的模块B中测试该模块(__name __ 值为 __main __),那么执行测试语句。否则不做任何执行即可。

def func():
    print("此语句是否会被执行")


if __name__ == "__main__":
    func()
    print("果然被执行了!")

二、包(package)

包的概念及使用

包是一个包含多个模块特殊目录,目录下包括一个特殊文件 __init __
包的导入和导入模块类似,形式:import 包名,只不过想要使用包中的工具,则需要在包的 __init __ 文件下导入此包的模块。

__init __的作用:
将此包下的模块进行导入,在其他地方调用这个包时,以便访问使用这个包的方法。

常见格式:
from . import 模块名


一个例子:

1.test_ 包,目录:__init __.py __test_1 __.py __test_2 __.py
(1) __init __.py

from . import test_1  # 导入模块
from . import test_2

(2)__test_1 __.py

def test_func_1():
    print("test_1 被使用")

(3)__test_2 __.py

def test_func_2():
    print("test_2 被使用")

2.外部调用

import test_  # 导入test_ 包,此包可供使用的模块放在 __init__ 文件下
test_.test_1.test_func_1()
test_.test_2.test_func_2()


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值