Python(12)模块和包

目录

模块:

一:导入模块的方式

方法一:

方法二:

二:as定义别名

三.制作模块

补充:__all__列表

 包:

制作一个包:

导入包:


模块简介:在Python语言中,包含Python代码的源文件(通常包含用户自定义的变量)称为模块,拓展名为.py。

包的简介:功能相近的模块可以组成为包,包是模块的层次性组织结构。

模块:

一:导入模块的方式

方法一:

1.导入模块

import 模块名1,模块名2.......

2.调用模块功能

模块名.功能名()

示例:

import math
print(int(math.sqrt(9)))

方法二:

from 模块名 import 功能1,功能2,功能3...

此方法可以不用模块名直接调用需要的功能

from math import sqrt
print(int(sqrt(9)))

方法三:

from 模块名 import *

from math import *
print(int(sqrt(9)))

二:as定义别名

模块定义别名

模块定义别名后原名失效

import 模块名 as 别名

import time as sj
sj.sleep(2)
print("hi")

功能定义别名

from 模块名 import 功能 as 别名

from time import sleep as sl
sl(2)
print('hi')

三.制作模块

1.制作判断素数的模块

def is_sushu(n):
    for i in range(2,n):
        if n%i==0:
            print("no")
            break
        else:
            print("yes")
            break

#测试语句
#只有当前文件中调用该函数,其他导入的文件内不符合该条件,则不执行函数调用
#__name__是系统变量,自身模块值为__main__,其他模块为其名字
if __name__ == '__main__':
    is_sushu(10)

2.调用模块

import sushu
sushu.is_sushu(20)
sushu.is_sushu(5)
sushu.is_sushu(13)

注意事项

1.自己的文件名不要与已有的模块名重复,否则导致模块功能无法使用(系统调用的是自己的文件,而不是系统自带的模块)

2.使用from模块名import功能时,如果功能名字重复,调用的是最后定义或导入的功能

注意事项2演示:

from time import sleep

def sleep():
    print("i want to sleep")
#后导入,故调用此函数
#所以程序批错

sleep(2)
def sleep():
    print("i want to sleep")

from time import sleep
#后导入,调用此函数,程序正常运行
sleep(2)

补充:__all__列表

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

演示:

__all__=['testA']
#只能使用testA
def testA():
    print('testA')

def testB():
    print('testB')

 包:

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

制作一个包:

[NEW]-[Python Package]-输入包名-[OK]-新建功能模块(有联系的模块)。

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

创建一个名叫mypackage的包,然后创建packagetest1和packagetest2两个模块

 模块内的代码:

#mypackagetest1
print(1)

def pl_print1():
    print('packagetest1')

#mypackagetest2
print(2)

def pl_print2():
    print('packagetest2')

导入包:

方法一:

import 包名.模块名

包名.模块名.目标

 示例:

import mypackage.packagetest1
mypackage.packagetest1.pl_print1()

方法二:

from 包名 import *

模块名.目标

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

#__init__.py
__all__=['packagetest1','packagetest2']

调用:

from mypackage import *
packagetest2.pl_print2()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值