Python模块和包

Python模块和包

一、模块

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

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

1.1导入模块

1.1.1导入模块的方式
  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
1.1.2导入方式详解
  • import
# 导入
import 模块名
import 模块名1, 模块名2...

# 调用
模块名.功能名()
  • from...import...
from 模块名 import 功能1, 功能2, 功能3...
  • from ... import *
from 模块名 import *
1.1.3as定义别名
import 模块名 as 别名

from 模块名 import 功能 as 别名

1.2制作模块

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

1.2.1定义模块

新建Python文件,命名为my_module1.py,并定义testA函数

def testA(a, b):
    return a + b
1.2.2测试模块
if __name__ == '__main__':
    print(testA(13, 15))
1.2.3使用模块
import my_module1

print(my_module1.testA(13, 14))

1.3模块定位顺序

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

  • 当前目录
  • shell变量PYTHONPATH下的每个目录
  • 查看默认路径,UNIX下,默认路径一般为/usr/local/lib/python/

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

注意:

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

1.4__all__

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

  • my_module模块代码
__all__ = ['testA']


def testA(a, b):
    return a + b


def testB():
    print('testB')
  • 使用模块
from my_module1 import *

print(testA(13, 14))
# testB() 无法使用不在__all__变量中的方法

二、包

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

2.1制作包

New->Python Package->输入包名->OK->新建功能模块

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

2.2示例

  • 新建包mypackage
  • 新建包内模块:my_module1my_module2
  • 代码如下
# my_module1
print(1)


def info_module1():
    print('my_module1')
    
# my_module2
print(2)


def info_module2():
    print('my_module2')

2.2导入包

2.2.1方法一
import 包名.模块名

包名.模块名.目标
2.2.2方法二

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

from 包名 import 模块名

模块名.目标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌尘吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值