美文网首页
python学习笔记-模块和包

python学习笔记-模块和包

作者: MR_詹 | 来源:发表于2020-09-07 20:48 被阅读0次

模块

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

模块导入方式

1、 import 模块名
2、 from 模块名 import 功能名1,功能名2....
3、 from 模块名 import *
4、import 模块名 as 别名
5、from 模块名 import 功能名 as 别名

例子:计算9的开平方

# 导入模块
import math
#调用模块功能
# 通过`模块名.功能`的格式调用功能
print(math.sqrt(9))


# 导入math模块的指定功能 sqrt
from math import sqrt
#调用sqrt可以直接调用,不需要通过模块名
print(sqrt(9))


#导入math模块所有的代码功能
from math import *
# 可以直接调用模块功能
print(sqrt(9))

as 定义别名

# 模块定义别名
import 模块名 as 别名

# 功能定义别名
from 模块名 import 功能 as 别名

例如:

# 导入time模块,并将设置别名为 tt
# 一旦模块设置了别名,就不能通过模块名调用功能
import time as tt
# 睡眠2秒钟,再打印hello
tt.sleep(2)
print('hello')


# 功能别名
from time import sleep as sl

sl(2)
print('hello')

制作模块

每个python文件都可以作为一个模块,模块的名字就是文件的名字,也就是说自定义模块名必须要符合标识符命名规则。

例子:
定义个rw_sum.py文件,并定义to_sum()函数

1、创建模块(新建一个.py文件)
创建一个rw_sum.py文件

2、定义to_sum()功能
def to_sum(a,b):
    print(a + b)

3、测试模块
# __name__ 是系统变量,是模块的标识符(如果是自身模块值是__main___,否则是当前的模块名字)
# 如果py代码是在当前自己py文件中运行,则__name__等于__main__
# 否则__name__的值就等于这个py文件名
if __name__ == '__main__':
    to_sum(1, 2)

4、调用模块
import rw_sum
    rw_sum.to_sum(1,2)


模块定位顺序

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

注意:
1、自己的文件名不要和已有模块名重复,否则导致模块功能无法使用
2、使用`from 模块名 import功能`的时候,如果功能名重复,调用的是最后定义或导入的功能

all

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

例如:
rw_sum.py模块代码:

__alloc__ = ['to_sum']

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

def to_harf(a):
    print(a/2)

包 将有联系的模块组织在一起,即放在`同一个文件夹`下,并且在这个文件夹创建一个名字为`__init__.py`文件,那么这个文件夹就称为包

制作包

[NEW] -- [Python Package]-- 输入包名--[OK] -- 新建功能模块(有联系的模块)
注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着`包的导入行为`

导入包

方法一:
import 包名.模块名
包命.模块名.目标功能()


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

from 包名 import *
  模块名.目标功能()

相关文章

  • Python学习笔记

    Python学习笔记 模块 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package...

  • Python ☞ day 7

    Python学习笔记之 date & datetime & 模块 & 包 & 第三方模块安装 时间 UTC(世界协...

  • python学习笔记-模块和包

    模块 模块导入方式 as 定义别名 制作模块 模块定位顺序 all 包 制作包 导入包

  • 大师兄的Python学习笔记(十): 多进程和多线程

    大师兄的Python学习笔记(九): logging模块与日志大师兄的Python学习笔记(十一): 时间模块ti...

  • 核心开发

    Python核心开发 一.包和模块 1. 包和模块的定义 为了更加有好的对python代码进行管理,出现了包和模块...

  • python 2.7 -> python 3.7 升级记录

    更换的模块 python 3.7 模块名python 2.7 模块名python 3.7 包python 2.7包...

  • Python高阶

    包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...

  • python18-模块和包

    本篇主要是讲的是模块和包基本操作,包括模块在同一包内/不同包内的导入和调用等。在学习python的过程中模块是必不...

  • 正则表达式

    python学习笔记-正则表达式 标签 : python 特殊符号和字符 re模块:核心函数和方法

  • 大师兄的Python学习笔记(十二): 常用高级函数

    大师兄的Python学习笔记(十一): 时间模块time,datetime和calendar大师兄的Python学...

网友评论

      本文标题:python学习笔记-模块和包

      本文链接:https://www.haomeiwen.com/subject/nmilektx.html