模块和包

简介: 在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()


相关文章
|
7月前
|
Python
python中导入模块/包的几种方式
python中导入模块/包的几种方式
77 0
|
28天前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
45 4
|
27天前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
4月前
|
机器学习/深度学习 算法 Python
引入相关依赖的包
【8月更文挑战第7天】引入相关依赖的包。
44 11
|
27天前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
6月前
|
JavaScript 中间件
包代码
包代码
39 7
|
7月前
|
开发者 Python
|
7月前
|
人工智能 数据挖掘 Python
Python模块与包的管理与使用
Python作为一种广泛应用的编程语言,模块与包的管理与使用是其核心特性之一。本文将介绍Python中模块与包的概念,以及如何进行有效的管理和利用,帮助读者更好地理解和运用Python编程。
|
7月前
|
Python
python安装包(模块)的八种方法
python安装包(模块)的八种方法
150 2
|
7月前
RuntimeSchema包无法引入问题
RuntimeSchema包无法引入问题
37 0