前言:
目前朋友们对“pythonpackage”大体比较着重,咱们都想要分析一些“pythonpackage”的相关资讯。那么小编同时在网络上网罗了一些关于“pythonpackage””的相关内容,希望小伙伴们能喜欢,兄弟们一起来了解一下吧!python模块(Module),是一个python文件,以.py结尾,包含了python对象定义和python语句。
模块能定义函数,类和变量,模块里也能包含可执行的代码。
导入模块
导入模块的方式
import 模块名from 模块名 import 功能名form 模块名 import *import 模块名 as 别名from 模块名 import 功能名 as 别名
import
import mathprint(math.sqrt(9)) # 3.0
from ... import ...
from math import sqrtprint(sqrt(9)) # 3.0
as定义别名
# 1. 模块别名import time as tttt.sleep(2)print('hello')# 2. 功能别名from time import sleep as slsl(2)print('hello')制作模块
在python中,每个python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。
定义模块
新建一个python文件,命名为my_module1.py,并定义testA函数。
def testA(a, b): print(a + b)
测试模块
在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发人员会自行在py文件中添加一些测试信息,例如,在my_module1.py文件中添加测试代码。
def testA(a, b): print(a + b)testA(2, 4)
此时,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行testA函数的调用。
解决方法如下:
def testA(a, b): print(a + b)# 只在当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行testA函数调用# __name__是系统变量,是模块的标识符,值是:如果是自身模块是__main__,否则是当前模块的名字if __name__ == '__main__': testA(2, 4)模块定位顺序
当导入一个模块,python解析器对模块位置的搜索顺序是:
当前目录如果不在当前目录,python则搜索在shell变量PYTHONPATH下的每个目录如果都找不到,python会查看默认路径。UNIX下,默认路径一般为/user/local/lib/python模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。__all__
如果一个模块文件中有__all__变量,当使用 from xxx import * 导入时,只能导入这个列表中的元素。
my_module1模块代码
__all__ = ['testA']def testA(): print('testA')def testB(): print('testB')导入模块的文件代码
from my_module2 import *testA() # testA# testB() # NameError: name 'testB' is not defined包
包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称之为包。
制作包
[New] -- [Python Package] -- 输入包名 -- [OK] -- 新建功能模块(有联系的模块)。
注意:新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为。
print(1)def info_print1(): print('my_module1')
print(2)def info_print2(): print('my_module2')导入包
方法一
import mypackage.my_module1mypackage.my_module1.info_print1()
方法二
注意:必须在__init__.py文件中添加__all__ = [],控制允许导入的模块列表。
from mypackage import *my_module1.info_print1()# my_module2.info_print2() # NameError: name 'my_module2' is not defined
标签: #pythonpackage