Python_模块和包

Python_模块和包

1.模块
模块:是一个Python文件,以.py结尾,包含了Python对象定义和Python语句;模块能定义函数,类和变量,模块里也能包含可执行的代码
2.导入模块
2.1 import 模块名
语法:
在这里插入图片描述

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

2.2 from 模块名 import 功能
语法:
在这里插入图片描述

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

2.3 from 模块名 import
语法:
在这里插入图片描述

from math import *
print(sqrt(9))   #3.0

2.4 as定义别名
语法:
在这里插入图片描述

# 模块别名
import time as tt
tt.sleep(3)
print('hello')

# 功能别名
from time import sleep as sl
sl(2)
print('hello')

3.制作模块
注意:自定义模块名必须要符合标识符命名规则
3.1 测试模块
my_moudle1模块代码:

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


# 测试功能
# add(1,2)  #3


# print(__name__)    #__main__


# __name__是系统变量,是模块标识符,值是:如果是自身模块值是__main__,否则值是当前模块的名字
if __name__=='__main__':
    add(1,2)  #3

导入模块的文件代码:

# 导入模块
import my_moudle1

# 调用模块
my_moudle1.add(1,6)   #7


# print(__name__)   #my_moudle1

4. 模块定位顺序
注意
(1)自己的文件名不要和已有模块名重复,否则导致模块功能无法使用(python解释器对模块位置的搜索顺序先是当前目录)
(2)当使用from XX import 功能导入模块功能时,如果功能名字重复,调用到的是最后定义或导入的功能
正常运行:

def sleep():
    print('自定义')

from time import sleep

sleep(3)

报错:

from time import sleep

def sleep():
    print('自定义')

sleep(3)

5. all列表
Python_1模块代码:

# 如果一个模块文件中有__all__变量,当使用from XX import *导入时,只能导入这个列表中的元素
__all__=['testA']

def testA():
    print('testA')

def testB():
    print('testB')

导入模块的代码:

from Python_1 import *

testA()   #testA

# testB()   #报错

6. 包
包:将有联系的模块组织在一起,将其放到同一个文件夹下,并且在这个文件夹创建一个名字为_init_.py文件,那么这个文件夹就称之为包
6.1 导入包
方法一:
在这里插入图片描述

# 导入包
import mypackage.my_moudle1
# 调用模块
mypackage.my_moudle1.info_print()

方法二:
注意:需要在_init_.py文件中设置all列表,添加的是允许导入的模块
在这里插入图片描述
_init_列表:

__all__=['my_moudle1']

导入模块的代码:

from mypackage import *
my_moudle1.info_print()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值