模块和包

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

目标


  • 了解模块
  • 导入模块
  • 制作模块
  • all
  • 包的使用方法


一模块


Python模块,是一个python文件,以.py结尾,包含了python对象定义和python语句。


模块能定义函数,类和变量,模块里也能包含可执行代码。


1.1导入模块


1.1.1导入模块方式


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


1.1.2导入方式详解


1.1.2.1import


语法


import 模块名
import 模块名1,模块名2.....
#调用功能
模块名.功能名()


体验


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


1.2.2 from…import…


语法


from 模块名 impotr 功能1,功能2.。。


体验


from math import sqrt
sqrt(9)


1.2.3 from…import *


from math import *
print(sqrt(9))


1.2.4 as定义别名


语法


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


体验


import time as tt
tt.sleep(2)
print('hello')
from time import sleep as s1
s1(2)
print('hello')


1.2制作模块


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


1.2.1 定义模块


新建一个python文件,命名位my_module1.py,并定义testA函数。


1.2.2测试模块


在实际开发中,当一个开发人员编写玩一个模块后,为了让模块能够在项目中达到想要得效果,开发人员会在行在py文件中添加一些测试信息,例如,在my_module1.py文件中添加测试代码


def tetA(a,b):
    print(a+b)
if __name__=='__main__':
    tetA(2,2)


/

import my_module
my_module.tetA(2,2)


注意:在自己导入模块是 会有红色得下划线,但是不影响运行。如果一定要处理 查看这个链接


1.3模块定位顺序


当导入一个模块,python解释器对模块位置的搜索顺序是:


  • 当前目录
  • 如果不在当前目录,Python则搜索在shell变量PYTHONPATH的每个目录。
  • 如果都找不到,python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/


模块搜索路径存储在system模块的sys.path变量中。变量包含当前模块中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。


注意


  • 自己的文件名不要和已有文件名重复,否则导致模块功能呢无法使用
  • 使用from 模块名 import 功能的时候,如果功能名字重复,调用到的是最后定义或导入的功能


#自己的文件名不要和已有文件名重复
import random
num=random.randint(1,5)
print(num)
"""
   num=random.randint(1,5)
AttributeError: module 'random' has no attribute 'randint'
"""

20200206113829913.png

def sleep():
    print('自定义sleep')
from time import sleep
sleep(2)


我没测试出来


1.4–all–


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


  • my_module1模块代码


__all__=['tetA']
def tetA():
    print('testa')
def tetB():
    print('testb')
## 标题


  • 导入模块的文件代码


from  my_module1 import *
tetA()
tetB()


二 、包


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


2.1制作包


【new】-【Python Package】-输入包名-【ok】-新建功能模块(有联系的模块)


注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为。


2.1.1快速体验


1.新建包mypackage

2.新建包内模块:my_module1和my_module1

3.模块内代码如下


print(1)
def info_print():
    print('my_module1')
print(2)
def info_print():
    print('my_module2')


2.2导入包


2.2.1方法一


import 包名.文件名
包名.模块名.目标


/

import mypackage.my_module1
mypackage.my_module1.info_print()


2.2.2方法二


注意:必须在__init__.py文件中添加__all__=[ ].控制导入的模块列表


from 包名 import *
模块名.目标


2.2.2.1体验


__all__=['my_module1']
from mypackage import *
my_module1.info_print()


相关文章
|
JavaScript 前端开发 HTML5
分享9款漂亮的浪漫情侣网站模板
  当你需要在短时间内制作出一个网站的时候,模板就非常有用了。这篇文章收集了9款漂亮又浪漫的情侣网站模板分享给大家,您可以免费下载使用,希望这些网站模板能帮助到您。 Love and Romance 1 下载模板 Love and Romance 2 下载模板 Love and R...
5381 0
|
开发者
微信公众平台开发基本配置
微信公众平台开发基本配置
511 0
|
存储 监控 安全
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
面对市面上眼花缭乱的双模芯片,许多应用方案商往往挑花了眼,不知道该选择哪款。今天我们推荐是天猫精灵联合平头哥推出的TG7100CWiFi&BLE双模芯片。它具有低功耗、宽工作温度等特点,广泛适用于智能家居,电工照明等领域。
TG7100CWiFi&BLE双模芯片 一键连接AIoT平台让你快速自定义智能方案
|
8月前
|
存储 分布式计算 数据处理
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
173 1
|
9月前
|
人工智能 JavaScript 安全
如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审
如何在云效中使用 DeepSeek 等大模型实现 AI 智能评审
|
消息中间件 设计模式 SQL
代码复用:DDD视角下的平衡艺术
文章深入探讨了软件开发中关于代码复用的哲学思考,作者通过自己的经历引入话题,结合软件设计领域的理论和观点,阐述了代码复用的本质及其在不同情境下的应用策略。
|
存储 数据管理 数据安全/隐私保护
如何给移动硬盘分区?(移动硬盘分区详细指南)
本文介绍了如何对移动硬盘进行分区,以提高数据管理和安全性。首先解释了硬盘分区的基本概念和好处,包括提升管理效率、保障数据安全和优化硬盘利用。接着,提供了两种分区方法:一是使用Windows磁盘管理器,适合基础操作;二是使用DiskGenius软件,功能更强大且用户友好。对于已有分区的移动硬盘,可通过调整现有分区或拆分来增加新分区。整个过程中,建议先备份数据,并谨慎操作。
|
存储 JavaScript 前端开发
『HarmonyOS』万物互联,分布式操作系统
2019年5月15日,美国商务部宣布,把华为及70家关联企业列入期所谓的“实体清单”,随后美国的“实体清单”不断扩容,体现了美国对中国高科技企业的限制升级,科技再次成为中美博弈的核心领域。 作为中国科技领域的头部企业,华为首当其冲。海思(华为旗下的芯片企业)受到严重限制。除此之外,软件技术也同样受到限制——谷歌已暂停与华为的部分合作,包括软件和技术服务的转让。华为在国外市场面临着升级Android版本、搭载谷歌服务等方面的困境。 因此,在这个背景下,除了加大海思的研发投入之外,华为也向世人公布了自己的秘密武器——HarmonyOS。正如“鸿蒙”的寓意,意味着HarmonyOS将会开启一个开
521 0
|
负载均衡 Dubbo Java
RPC框架:从原理到选型,一文带你搞懂RPC(三)
RPC系列的文章是我去年写的,当时写的比较散,现在重新进行整理。对于想学习RPC框架的同学,通过这篇文章,让你知其然并知其所以然,便于以后技术选型
645 0
RPC框架:从原理到选型,一文带你搞懂RPC(三)
|
数据可视化 定位技术 API
Python可视化神器-Plotly动画展示
在之前的一篇文章Python可视化神器-Plotly展现了可视化神器-Plotly的基本使用,接下来继续本着学习的姿态继续探索可视化神器-Plotly的神奇之旅。本文介绍如何在Python中使用Plotly创建动画。
1323 0
Python可视化神器-Plotly动画展示