模块的介绍

目录

一、模块的基本介绍

1、模块是什么?

2、模块的作用有哪些?

3、快速入门

二、导入模块-import

1、基本语法

2、实例演示

三、自定义模块

1、基本说明

2、注意事项和细节


一、模块的基本介绍

1、模块是什么?

1)模块是一个py文件,后缀名.py

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

2、模块的作用有哪些?

1)当函数、类、变量很多时,可以很好的进行管理

2)开发中,程序员可以根据业务需求,把同一类型的功能代码,写到一个模块文件中,既方便管理,又方便调用

3)一个模块就是一个工具包,供程序员开发使用

4)Python自带标准模块库,每个模块可以帮助程序员快速实现相关功能

3、快速入门

# jack_module.py
# 定义函数 hi
def hi():
    print("hi,jack")

# 模块可以定义函数、类和变量,模块里也可能包含可执行的代码
# tom_module.py
# 定义函数 hi
def hi():
    print("hi,tom")
# use_.py
# 导入模块(文件)
import jack_module
import tom_module

# 使用 jack_module模块中的 hi函数
jack_module.hi()
# 使用 tom_module模块中的 hi函数
tom_module.hi()

二、导入模块-import

1、基本语法

[from 模块名] import (函数 | 类 | 变量 | *) [as 别名]

1)[ ]是可选项

2)可以根据需求,选择合适的形式导入

2、实例演示

1)导入一个或多个模块

import 模块

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

  • 导入一个或多个模块,建议导入多个模块时,还是一行导入一个模块
  • 使用:模块.xx 方式来使用相关功能,表示层级关系,即模块中的xx
  • import 语句通常写在文件的开头
# 导入模块
# import 模块名
import math
import random

# 得到一个数的绝对值
print(math.fabs(-11.2))
# 从列表中随机返回一个元素
print(random.choice(['apple', 'pear', 'banana']))

 2)导入模块的指定功能

from 模块 import 函数、类、变量

  • 导入模块指定功能
  • 使用:因为导入了具体函数、类、变量,直接使用即可,不需要再带模块名
# from 模块 import 函数、类、变量
from math import fabs

# 返回x的绝对值
print(fabs(-11.2))

3)导入模块的全部功能

from 模块 import *

  • 导入模块全部功能
  • 使用:直接使用,不需要带模块名
# 导入模块的全部功能
from math import *

# 返回x的绝对值
print(fabs(-123))  # 123.0
# 返回 x的平方根
print(sqrt(9))  # 3.0

4)给导入的模块或者功能取别名

import 模块 as 别名

from 模块 import 函数、类、变量.. as 别名

import 模块 as 别名:给导入的模块取别名,使用:别名.xx

from 模块 import 函数、类、变量.. as 别名:给导入的某个功能取别名,使用时,直接用别名即可

# 给导入的模块或功能取别名
# import 模块 as 别名
import random as r
# from 模块 import 函数、类、变量.. as 别名
from math import fabs as f

print(r.choice([100, 200, 300]))
print(f(-900))

三、自定义模块

1、基本说明

1)自定义模块:在实际开发中,Python提供的标准库模块不能满足开发需求,程序员需要一些个性化的模块,就可以进行自定义模块的实现

2)在前面的快速入门中,我们已经实现了简单的自定义模块

2、注意事项和细节

1)使用__name__可以避免模块中的测试代码的执行

# cx_module.py
def hi():
    print("cx,hi")

def ok():
    print("cx,ok")

# 有时我们在模块中,会写一下测试代码
hi()
# a.py
from cx_module import *
hi()
ok()

# 运行a.py有出现什么情况?
# 当导入模块文件时,也会执行测试代码

运行a.py有出现什么情况?
当导入模块文件时,也会执行测试代码

思考:如何解决导入模块文件,会执行测试代码的情况?

答:

# 如果我们并不希望,导入模块时,去执行测试代码hi(),就可以使用__name__

# 当一个Python模块被导入时,__name__会被设为模块的名称

# 如果直接执行__name__会被设置为__main__

# cx_module.py
def hi():
    print("cx,hi")

def ok():
    print("cx,ok")

# 有时我们在模块中,会写一下测试代码
# 如果当前文件的__name__的值为__main__才执行
if __name__ == '__main__':
    hi()
# a.py
from cx_module import *
hi()
ok()

2)使用__all__可以控制import*时,哪些功能被导入,注意:import 模块 方式,不受__all__的限制

# cx_module.py
def hi():
    print("cx,hi")

def ok():
    print("cx,ok")

# 有时我们在模块中,会写一下测试代码
# 如果当前文件的__name__的值为__main__才执行
if __name__ == '__main__':
    hi()

# 在cx_module.py中使用了__all__=['ok']
# 在其他文件中使用 from cx_module import * 只会导入ok()
# 注意:import 模块 方式,不受__all__的限制
__all__=['ok']
# a.py
# 注意:import 模块 方式,不受__all__的限制
from cx_module import *
# hi() # 不能被导入
ok()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值