【python知识点总结】第五章 模块和包

一 使用模块

​ 模块Module是一个python文件,以.py结尾,包含了python对象定义和python语句,模块能定义函数,类和变量,模块里也能包含可执行的代码

1、导入模块的方式

1.1 import 模块名

​ 导入时:import 模块名,调用时:模块名.功能名()

import math
print(math.sqrt(9))		# 3.0

1.2 from … import …

​ 导入时:from 模块名 import 功能1,功能2…,调用时:功能名()

from math import sqrt
print(sqrt(9))			# 3.0

1.3 from … import *

​ 导入时:from 模块名 import*,调用时:功能名()

from math import*
print(sqrt(9))

2、别名

​ as为模块或者功能定义别名,语法:import 模块名 as 别名 from 模块名 import 功能 as 别名

​ 当定义别名后,之后只能使用别名

# 定义模块别名
import time as tt
tt.sleep(2)
print('hello')		# hello

# 定义功能别名
from time import sleep as sl
sl(2)	
print('hello')		# hello

3、模块定位顺序

​ 当导入一个模块,python解释器对模块位置的搜索顺序为:1、当前目录 2、如果不在当前目录,python则搜索在shell变量PYTHONPATH下的每个目录 3、如果都找不到,python会查看默认路径。

4、__all__列表

​ 如果一个模块文件中有__all__变量,当使用from xxx import * 导入时,只能导入这个列表中的元素,即允许导入的模块或功能列表

定义一个模块

__all__ = ['testA']		# 只有__all__列表内的功能才能导入,不在内的无法导入

def testA():
    print('A')

def testB():
    print('B')

调用模块

from new_module import *
testA()
# testB()		# 无法调用testB,未添加到__all__列表

二 安装第三方模块

三 制作模块

​ 每一个python文件都可以作为一个模块,模块名即为文件名,要复合标识符命名规则

1、定义模块

​ 新建python文件——new_module.py,填写内容

def sum(a, b):
    print( a + b )

2、测试模块

​ 在new_module.py中测试,__name__是系统变量,是模块的标识符,若调用时__name__在当前模块中,则为__main__,在其他导入文件内等于当前模块名;即只有在new_module.py里运行代码才执行测试文件 sum(1, 2),否则不执行

if __name__ == '__main__':
    sum(1, 2)

3、调用模块

​ 在其他py文件在中调用

import new_module
new_module.sum(2,2)		# 4

四 包

​ 包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹中创建一个名字为__init__.py文件(这是创建包后自动创建的),这个文件控制这包的导入行为

1、创建包

​ 右键创建包mypackage,并定义两个模块my_module1.py和my_module2.py

​ my_module1

print(1)

def init_module1():
    print('init_module1')

​ my_module2

print(2)

def init_module2():
    print('init_module2')

2、导入包

1.1 import 包名.模块名

​ 导入时:import 包名.模块名,调用时:包名.模块名.目标

​ 导入mypackage中的模块my_module1

import mypackage.my_module1
mypackage.my_module1.init_module1()		# 1		init_module1

1.2 from 包名 import *

​ 导入时:from 包名 import *,调用时:模块名.目标

​ 该方法必须在__init__.py文件中添加__all__=[],控制允许导入的模块列表

__all__=['my_module1','my_module2']

​ 导入并调用模块

from mypackage import *
my_module2.init_module2()	# 1	  2   init_module2 —— 调用包内模块时,先运行__init__.py内可执行代码(无论下面有没有使用这个模块,一旦引入必先运行)

本文根据廖雪峰老师python课程和黑马程序员python课程进行记录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值