【Python基础】Python模块

简介: 【Python基础】Python模块

Python模块

什么是模块?

Python模块(Module),是一个Python文件,以.py结尾

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

模块的作用:python中有很多各种不同的模块,每一个模块都可以帮助我们快速的实现一些功能,比如实现和实践相关的功能就可以使用time模块,我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用,进而实现各种不同的功能。

简言之:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

模块的导入方式

模块在使用前需要先导入 导入的语法如下:

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

//上面的中括号 在语法中表示可选的意思(即 from,as可以不写,import必须写

常用的组合形式如:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

(1)import 模块名

基本语法:

import 模块名
import 模块名1, 模块名2
模块名.功能名()

案例:导入time模块

# 导入时间模块
import time  # 导入Python内置的time模块(time.py这个代码文件)
print("开始")
# 让程序睡眠1秒(阻塞)
time.sleep(1)  # 通过.点就可以使用模块内部的全部功能(类、函数、变量)
print("结束")

(2)from 模块名 import 功能名

基本语法:

from 模块名 import 功能名
功能名()

案例:导入time模块中的sleep方法

# 使用from导入time的sleep功能(函数)
from time import sleep
print("你好")
sleep(5)
print("hi")

(3)from 模块名 import *

基本语法:

from 模块名 import *
功能名()

案例:导入time模块中的所有方法

# 导入时间模块中所有的方法
from time import *    # *表示全部的意思
print("hii")
sleep(5)   # 和第一种导入方法相比较:都可以导入模块中的全部方法,但上面的方式在使用时要加上【模块名.】而本方法不需要
print("hiii")

(4)as定义别名

基本语法:

# 模块定义别名
import 模块名 as 别名
# 功能定义别名
from 模块名 import 功能 as 别名

案例:

# 用as给特定功能加上别名
# 模块别名
import time as t
print("start")
t.sleep(2)
print("end")
# 功能别名
from time import sleep as sl
print("111")
sl(2)
print("22")

小结

注意事项:

  • from可以省略,直接import即可
  • as可以省略
  • 通过"."来确定层级关系
  • 模块的导入一般写在代码文件的开头位置

自定义模块

制作自定义模块

Tip:每个python文件都可以作为一个模板,模块的名字就是文件的名字,也就是说 自定义模块名必须要符合标识符命名规则

# my_module1.py文件里的内容
def test(a, b):
    print(a + b)
# 导入自定义模块使用
# 01
# import my_module1
# my_module1.test(1, 2)
# 02
# from my_module1 import test
# test(1, 2)

**注意事项:**当导入多个模块的时候,且模块内有同名功能,当调用这个同名功能的时候,调用到的是后面导入的模块的功能

# my_module1.py文件里的内容
def test(a, b):
    print(a + b)
# my_module2.py文件里的内容
def test(a, b):
    print(a - b)
# 导入不同模块的同名功能
from my_module1 import test
from my_module2 import test
test(1, 2)
运行结果:
-1

测试模块

__main__
  • 不希望在导入模块时,执行测试内容的解决办法:
    通过”__main__“变量去解决的
    在pycharm中输入main,会弹出提示,直接回车会弹出需要的if语句

将用于测试的test函数调用放在if判断语句中

  • 在当前文件内直接运行时,内置变量__name__的名称会标记成main
    则 此时if为True ->测试代码就会执行
  • 但是,当我们以from形式导入模块时,在新文件中运行,name就不再为main,此时if为False,则不会运行
# my_module1.py文件里的内容
def test(a, b):
    print(a + b)
if __name__ == '__main__':
    test(1, 2)
# __main__变量
from my_module1 import test
__all__

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

因为*代表所有,而所有来自all的定义

all中只有test_a,那么*里也只有test_a

# my_module1.py文件里的内容
__all__ = ['test_a']
def test_a(a, b):
    print(a + b)
def test_b(a, b):
    print(a * b)
# __all__变量
from my_module1 import *
test_a(2, 1)
test_b(2, 1)  # 此时这一行会报错
# 此处手动导入test_b是可以的,因为all只是限制了*涵盖的内容

小结

  1. 如何自定义模块 并导入?
    在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用
  2. __main__变量的功能是?
    if __main__ == "__main__"表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法执行
  3. 注意事项
    不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的
目录
相关文章
|
4天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
12 5
|
14天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
17天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
59 5
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 6
SciPy教程之常量模块介绍:涵盖公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率及力学单位。示例展示了角度单位转换为弧度的几个常用常量。
17 7
|
20天前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
17 6
|
18天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
16 1
|
18天前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
48 1
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
13 1
|
19天前
|
Python
SciPy 教程 之 SciPy 模块列表 8
SciPy教程之常量模块单位类型介绍。该模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例展示了部分长度单位的转换值,例如英寸、英尺、海里等。
14 1
|
21天前
|
知识图谱 Python
SciPy 教程 之 SciPy 模块列表 5
本教程介绍SciPy常量模块中的单位类型,涵盖公制、质量、时间、长度等单位。示例代码展示了如何使用`scipy.constants`模块获取不同质量单位的千克值,如公吨、磅、盎司、原子质量单位等。
14 1