Python基础07-模块

零、文章目录

Python基础07-模块

1、模块是什么

  • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。

2、模块的分类

  • 在Python中,模块通常可以分为两大类:内置模块(目前使用的) 和 自定义模块

3、模块的导入方式

(1)import模块名

基本语法:

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

使用模块中封装好的方法:

模块名称.方法()

案例:使用import导入math模块

import math

# 求数字9的平方根 = 3
print(math.sqrt(9))
(2)import 模块名 as 别名
  • 在有些情况下,如导入的模块名称过长,建议使用as关键字对其重命名操作,以后在调用这个模块时,我们就可以使用别名进行操作。
import time as t

# 调用方式
t.sleep(10)
(3)from 模块名 import *
  • 提问:已经有了import导入模块,为什么还需要使用from 模块名 import 功能名这样的导入方式?

  • 答:import代表导入某个或多个模块中的所有功能,但是有些情况下,我们只希望使用这个模块下的某些方法,而不需要全部导入。这个时候就建议采用from 模块名 import 功能名

  • from 模块名 import * 导入这个导入方式代表导入这个模块的所有功能(等价于import 模块名)

(4)from 模块名 import 功能名(推荐)
'''
导入方式:
from 模块名称 import *                      代表导入这个模块中所有函数
from 模块名称 import 函数1, 函数2, 函数3      代表仅导入函数123

调用方式:不需要模块名称,直接使用函数名称即可
'''
# from math import *
# 或
from math import sqrt, floor

# 调用方式
print(sqrt(9))
print(floor(10.88))
(5)time模块中的time()方法
'''
time模块是一个与日期时间相关的模块,主要拥有这样两个方法
time.sleep(秒数) :休眠
time.time() :获取当前时间,返回的是一个数字,我们经常使用time.time()获取程序执行时间
'''
# 1、导入time模块
import time

# 2、程序开始前,获取一个时间点
start = time.time()
# 定义一个列表
list1 = []
for i in range(10000000):
    list1.append(i)
# 3、当程序执行结束,获取一个时间点
end = time.time()

print(f'以上程序执行一共消耗了{end - start}s时间!')

4、自定义模块是什么

  • 模块的本质:在Python中,模块的本质就是一个Python的独立文件(后缀名.py),里面可以包含全局变量、函数以及类。
  • 注:在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。
  • 特别注意:我们在自定义模块时,模块名称不能为中文,不能以数字开头,另外我们自定义的模块名称不能和系统中自带的模块名称(如os、random)相冲突,否则系统模块的功能将无法使用。比如不能定义一个叫做os.py模块

5、自定义模块定义

  • 案例:在Python项目中创建一个自定义文件,如my_module1.py
# 封装一个函数sum_num(),专门对两个参数进行求和操作
def sum_num(num1, num2):
    print(num1 + num2)

6、导入自定义模块

'''
在Python代码中,只要涉及到模块的导入你都有两种导入方式:① import ② from
'''
# import my_module1
# 导入模块中已经封装好的sum_num()方法
# my_module1.sum_num(10, 20)

from my_module1 import sum_num
# 调用方法
sum_num(10, 20)

8、测试模块代码

  • 在我们编写完自定义模块以后,最好在模块中对代码进行提前测试,以防止有任何异常。

  • 引入一个魔术变量:__name__,其保存的内容就是一个字符串。随着运行页面的不同,其返回结果也是不同的:

    • ① 如果__name__是在当前页面运行时,其返回结果为__main__
    • ② 如果__name__在第三方页面导入运行时,其返回结果为模块名称(文件名称)
  • 基于以上特性,我们可以把__name__编写在自定义模块中,其语法如下:

    if __name__ == '__main__':
        # 执行测试代码
    
  • 定义一个自定义模块my_module2.py

'''
在Python中,以__name__这样命名的变量都属于魔术变量,拥有特殊的含义!
__name__ :是一个特殊的变量,随着运行环境的不同(随着所运行位置的不同,返回结果也是不同的)
__name__返回的结果是一个字符串
① 如果在本页面直接输出__name__,其结果为'__main__'
② 如果在本页面中,存在一个__name__,然后把这个页面导入到其他文件时,则__name__返回结果就是本页面的文件名称,不等于__main__
'''
print(__name__)
# print(type(__name__))
#
if __name__ == '__main__':
    print('如果以上条件成立,代表我们正在当前页面中执行此代码')
  • 在自定义模块中直接运行,输出
如果以上条件成立,代表我们正在当前页面中执行此代码
  • 在外部引入此模块运行,输出
my_module2

猜你喜欢

转载自blog.csdn.net/liyou123456789/article/details/135039302