Python 中的导包(import):从入门到实践 | 搞计算机的研究生们求你们看看吧

Python 中的导包(import):从入门到实践

在 Python 中,如果我们想使用其他人或自己写的功能(函数、类等),最常见的方式就是“导包”(import)。导包就相当于“拿来一个工具箱”,把里面的工具(代码)借来使用。本文将从基础到稍微进阶的层面,为你详细介绍 Python 的导包方式与常见用法。

一、为什么要导包?

举个生活中的例子:

  • 如果你要砍木头,需要一把斧子或电锯;
  • 如果你要拔钉子,需要钳子或起子。

在编程中,这些“工具”就可以看作各种功能、函数、类等。Python 官方或社区为我们准备了很多“工具箱”,里面装满了各种常用或专业的功能(比如数学运算、处理表格数据、网络通信等等)。我们不必重复造轮子,只需要把“工具箱”导入,直接使用它就可以了。

二、最基础的 import 用法

1. 直接 import 模块名

这是最基本、最直接的导包方法。比如我们想要使用 Python 内置的 math 模块来做数学运算,就可以这么写:

import math

# 使用 math 模块中的 sqrt 函数
num = 16
result = math.sqrt(num)
print(result)  # 输出 4.0

在这里,我们先 import math,就可以使用 math 模块里的所有公开函数,比如 math.sqrt()math.sin()math.cos() 等等。

小提示:

  • math 是 Python 的内置模块,安装 Python 时就自带了,不需要额外安装。
  • 类似的内置模块还有 randomdatetime 等,我们都可以用 import 模块名 的方式来使用。

2. 使用 from 模块名 import 函数名/类名

有时候我们只想用模块中的某些函数或类,不想每次都写 模块名.函数名,那就可以用这种形式。以 math 模块为例:

from math import sqrt

num = 25
result = sqrt(num)  
print(result)  # 输出 5.0

这里我们直接从 math 模块里导入了 sqrt 函数,这样在后续的使用中,就可以直接写 sqrt(),而不用写 math.sqrt() 了。

但是要注意:
如果使用了相同名称的函数或变量,可能会出现“命名冲突”。比如你自己也定义了一个 sqrt 函数,那么就会出现混淆。所以要小心命名冲突的问题。

3. import 模块名 as 新名字(重命名)

如果我们想让模块名更短或更简单,可以用 as 给它起一个别名,常见于一些比较长的库名称,比如 numpypandas 等。示例:

import math as m

num = 36
result = m.sqrt(num)  
print(result)  # 输出 6.0

这样以后使用的时候,直接 m.sqrt() 就可以了,比较简洁。

同样,如果只导入模块中的部分内容,也可以给那部分内容起别名:

from math import sqrt as s

num = 49
result = s(num)
print(result)  # 输出 7.0

三、导入多个模块或多个函数

1. 同时导入多个模块

如果你要同时导入多个模块,可以写在同一行或者多行,灵活使用:

import math, random

# 使用 math 模块
result_1 = math.sqrt(9)

# 使用 random 模块
result_2 = random.randint(1, 10)

print(result_1)  # 3.0
print(result_2)  # 1~10之间的随机整数

最好还是养成良好的习惯,把不同模块分到不同的导入语句中,以提高可读性:

import math
import random

2. 同时导入一个模块中的多个函数

如果只想从一个模块里导入多个函数,可以用逗号分隔:

from math import sqrt, sin, cos

print(sqrt(16))  # 4.0
print(sin(3.14159))  # 近似 0
print(cos(3.14159))  # 近似 -1

四、从自定义模块导入

除了 Python 自带和社区常用的库,你也可以自己编写 Python 文件作为“自定义模块”,然后在别的文件中导入。

  1. 新建一个文件 mytools.py,内容如下:

    def say_hello(name):
        print(f"Hello, {name}!")
    
    def add_numbers(a, b):
        return a + b
    
  2. 在同一文件夹下,新建另一个 Python 文件 test.py 并写:

    import mytools
    
    mytools.say_hello("Alice")  # Hello, Alice!
    result = mytools.add_numbers(5, 7)
    print(result)  # 12
    

Python 会在当前文件夹下找一个叫 mytools.py 的文件,并导入其中定义的函数 say_helloadd_numbers

如果只想要导入 say_hello,可以这样写:

from mytools import say_hello

say_hello("Bob")  # Hello, Bob!

当然,在大型项目里,模块之间的层次会更复杂,还会涉及 相对导入 等,更高级的用法需要我们在学习到包(package)的概念后再深入掌握。

五、一次性导入全部内容:from 模块名 import *

有时候,我们会看到类似 from math import * 的语句,这表示把 math 模块里的所有函数和变量一次性导入到当前作用域中。这样就可以直接用 sqrt()sin() 等,似乎很方便。但这样做在实际项目中并不推荐,主要原因有两个:

  1. 代码可读性变差:无法一眼看出哪些函数来自本地定义,哪些来自模块。
  2. 可能发生命名冲突:如果你本地有个函数和模块里的同名函数冲突,会导致各种难以排查的错误。

所以,在实际工作中,from ... import * 一般只在交互式实验(如 Jupyter Notebook 快速测试)或临时小脚本中使用,正式项目中尽量不要这样写。

六、安装并导入第三方库

Python 不仅有内置标准库,还有很多由社区贡献的第三方库。例如:

  • requests(进行网络请求),
  • flask(Web 后端框架),
  • tensorflow(深度学习),等等。

使用第三方库时,需要先在命令行/终端执行:

pip install requests

然后就可以在代码里用 import requests 来引用了:

import requests

response = requests.get("https://www.example.com")
print(response.status_code)  # 200

七、总结

  • Python 的“导包”就是将另一个脚本或库中的“工具”拿来使用。
  • 常见用法包括:
    • import 模块名
    • from 模块名 import 函数/类/变量
    • import 模块名 as 别名
    • from 模块名 import 函数/类/变量 as 别名
  • 对于自己的代码,可以将常用函数写在一个单独的文件(模块)中,然后在其他脚本中导入复用。
  • 使用第三方库前,先用 pip install 库名 安装,然后再 import
  • 除了演示和临时使用,一般不建议使用 from 模块名 import * 方式来导包。

希望本文能让你快速理解并上手 Python 的导包语法,合理地使用 Python 库既能提高代码质量,也能节省开发时间。让我们在编程之路上越走越顺利吧!


感谢阅读! 如果这篇文章对你有帮助,欢迎分享给你的同学或朋友。一起学习,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值