首页 > 编程语言 >[1]Python基础语法-【12】模块导入

[1]Python基础语法-【12】模块导入

时间:2023-04-01 11:32:46浏览次数:41  
标签:12 Python 代码 导入 模块 import math

模块是 Python 中的一种重要组件,它可以让你将代码分割成更小、更易于维护和重复使用的部分。在 Python 中,你可以使用 import 语句将模块导入到你的代码中。本篇文章将详细介绍 Python 中的模块导入。

模块的定义

在 Python 中,模块是一组相关的函数、类和变量的集合,它们通常被存储在单独的 .py 文件中。模块可以包含任意数量的函数、类和变量,这使得代码更加模块化,提高了代码的可读性和可维护性。

模块的导入

在 Python 中,你可以使用 import 语句将模块导入到你的代码中。import 语句可以放在程序的任何地方,但是通常放在文件的开头。例如,下面的代码演示了如何导入 Python 中的 math 模块:

import math

这个语句将 math 模块导入到当前的命名空间中。这意味着你可以在你的代码中使用 math 模块中的任何函数、类和变量。

如果你只想使用模块中的特定函数、类或变量,你可以使用 from 语句导入它们。例如,下面的代码演示了如何导入 math 模块中的 sqrt() 函数:

from math import sqrt

这个语句将 sqrt() 函数导入到当前的命名空间中。这意味着你可以在你的代码中直接使用 sqrt() 函数,而不需要使用 math 模块的前缀。

你也可以使用 as 关键字给导入的模块、函数、类或变量起一个别名。例如,下面的代码演示了如何将 math 模块导入到当前的命名空间,并给它起一个别名 m:

import math as m

这个语句将 math 模块导入到当前的命名空间中,并给它起一个别名 m。这意味着你可以使用 m 代替 math 模块的前缀。

模块的搜索路径

当你使用 import 语句导入模块时,Python 会按照一定的搜索路径来查找该模块。搜索路径通常包括以下几个位置:

  • 当前目录
  • 标准库目录
  • 第三方库目录

你可以通过 sys.path 变量来查看 Python 的搜索路径。例如,下面的代码演示了如何查看 Python 的搜索路径:

import sys
print(sys.path)

这个代码将打印出 Python 的搜索路径。

模块的重新加载

在 Python 中,如果你修改了一个已经导入的模块,你需要重新加载该模块才能使修改生效。你可以使用 importlib 模块中的 reload() 函数来重新加载模块。例如,下面的代码演示了如何重新加载 Python 中的 math 模块:

import importlib
import math

# 修改 math 模块
math.pi = 3.14

# 重新加载 math 模块
math = importlib.reload(math)

print(math.pi)  # 输出 3.14

这个代码将修改 math 模块中的 pi 变量,并重新加载 math 模块。最后,它将输出修改后的 pi 变量的值。

需要注意的是,reload() 函数只能重新加载已经导入的模块。如果你还没有导入该模块,你需要使用 import 语句导入它。

导入全部内容

有时候,你可能想要导入模块中的所有内容。你可以使用 * 符号来导入所有内容。例如,下面的代码演示了如何导入 Python 中的 math 模块的所有内容:

from math import *

这个语句将 math 模块中的所有函数、类和变量导入到当前的命名空间中。这意味着你可以在你的代码中直接使用这些函数、类和变量,而不需要使用 math 模块的前缀。

虽然这种导入方式很方便,但是它也有一些缺点。首先,它会导入所有内容,包括你不需要的内容,这可能会导致命名冲突。其次,它会使你的代码难以阅读和理解,因为你不知道哪些函数、类和变量来自哪个模块。

因此,尽可能避免使用 * 符号导入所有内容,除非你确定它不会导致问题。

动态导入

有时候,你可能需要根据条件动态地导入模块。你可以使用 importlib 模块中的 import_module() 函数来实现动态导入。例如,下面的代码演示了如何根据用户输入的模块名称动态导入模块:

import importlib

module_name = input("Enter module name: ")
module = importlib.import_module(module_name)

这个代码将提示用户输入模块名称,并动态地导入该模块。最后,它将返回一个指向该模块的引用。

模块的相对导入

有时候,你可能需要从同一包中导入另一个模块。在这种情况下,你可以使用相对导入。相对导入使用点 . 和双点 .. 来表示当前包和父包。例如,下面的代码演示了如何从同一包中导入另一个模块:

my_package/
├── __init__.py
├── module1.py
└── subpackage/
    ├── __init__.py
    └── module2.py
# module2.py
from . import module1  # 相对导入

这个代码将从 module2.py 中相对导入 module1.py。

需要注意的是,相对导入只能在包中使用。如果你试图在单个模块中使用相对导入,Python 将引发 ValueError 异常。

总结

模块是 Python 中的一种重要组件,它可以让你将代码分割成更小、更易于维护和重复使用的部分。在 Python 中,你可以使用 import 语句将模块导入到你的代码中,并使用它们提供的函数、类和变量。你可以使用不同的导入方式和技巧来导入模块,以满足不同的需求。

下面是一些小结:

  • 使用 import 语句导入模块,语法为 import module_name。
  • 使用 as 关键字将导入的模块重命名,语法为 import module_name as new_name。
  • 使用 from 关键字导入模块中的特定函数、类或变量,语法为 from module_name import name。
  • 使用 import * 导入模块中的所有函数、类和变量,语法为 from module_name import *。尽量避免使用这种方式。
  • 使用 importlib 模块中的 import_module() 函数来动态导入模块。
  • 使用相对导入从同一包中导入另一个模块,语法为 from . import name。

希望这篇教程能帮助你更好地理解和使用 Python 中的模块导入功能。

标签:12,Python,代码,导入,模块,import,math
From: https://blog.51cto.com/jzj2023/6163442

相关文章

  • [oeasy]python0122_日韩字符_日文假名_JIS_Shift_韩国谚文
    日文假名和韩国谚文回忆上次内容上次回顾了非ascii的拉丁字符编码的进化过程0-127是ascii的领域世界各地编码分布拉丁字符扩展ascii共16种由iso组织制定从iso-8859-1到iso-8859-16无法同时显示俄文和法文此时中日韩的文字也需要进入计算机象形文字的字符集超级巨大日本......
  • 代码随想录day 32● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
    122.买卖股票的最佳时机II给定一个数组,它的第 i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入:[7,1,5,3,6......
  • day32 打卡122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
    day32打卡122.买卖股票的最佳时机II55.跳跃游戏45.跳跃游戏II122.买卖股票的最佳时机II122题目链接classSolution{publicintmaxProfit(int[]prices){intresult=0;for(inti=1;i<prices.length;i++){result+=Math.......
  • Python: issues
     'import*'onlyallowedatmodulelevelWhenPythoncompilescodeitneedsadeterminednumberoflocalvariables,Thenumberofvariablesthatimport*canreturncanchangeaftercodeiscompiled.foo=55deffunc():fromsome_modulei......
  • python利用pyinstaller打包生成exe
    1.安装pyinstallerpipinstallpyinstaller是最简单的安装方式2.要打包的文件目录下,并执行命令允许一个文件pyinstaller.exe-F.\要打包的py文件pyinstaller.exe-F.\wei_dian_vbuyCreateOrder.py......
  • 100道python基础题——(24)
    题:Python有许多内置函数,如果您不知道如何使用它,您可以在线阅读文档或查找一些书籍。但是Python为每个内置函数都有一个内置的文档函数。请编写一个程序来打印一些Python内置函数文档,例如abs(),int(),raw_input()并为您自己的功能添加文档提示:内置文档方法是__doc__ print(a......
  • 通过Sysmon+Nxlogs收集Windows Server 2012服务器日志-并以Syslog形式发送Json格式数
    0x01环境介绍WindowsServer2012已经安装部署好了域控,目的除了收集Windows服务器本身的日志外还收集域控环境下的各种日志。0x02Nxlog配置和使用使用社区版本即可,下载地址:https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition使用的版本是当前最新版本安装过程就省略,......
  • 关于SQLsever2012报错的一些经验总结
    问题描述:数据库连接实例时出现报错情况;问题截图:  故障软件:SQLsever2012操作系统:windowssever2022R2数据中心期望结果:可以打开之前的实例 总结经验: 上面这张图是1月15号出现的,距离今天已经过去了40天,当时查询了n多资料也没有解决的这个问题,由于过年和其他事务的出现,以至于在......
  • 基于国产车规级处理器T507-H开发平台,如何用50行Python代码实现图传和人脸识别?
    我们在米尔国产T507-H车规级处理器的开发板上尝试无线图传功能,并且叠加人脸识别检测视频中是否存在人脸。这次使用的是USB摄像头,可以直接接在开发板的接口上。1.连接摄像头连接好摄像头后使用指令dmesg,看到能读取到摄像头。显示为HIK720pCamera接下来使用v4l来检测相机的详细参......
  • python写入文件时,编码方式为utf-8,在pycharm种正常显示中文,但是用excel打开就乱码
    python写入文件时,编码方式为utf-8,在pycharm种正常显示中文,但是用excel打开就乱码解决办法:explore.to_csv(resultfile,encoding='utf-8-sig')encoding='utf-8-sig’因为python编码方式为utf-8,但是是无BOM格式的,excel软件,其对于utf-8编程方式,只支持有BOM格式的,所以会出现中文......