一文搞懂 Python 3 中的 import

本文介绍了Python编程中的模块概念,包括内置函数的使用,模块的定义与导入,以及如何通过import语句访问模块的功能。学习了如何检查和安装模块,以及使用from...import和为模块设置别名的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

Python 编程语言自带各种内置函数。其中包括一些常见的函数,例如:

  • print() 用于打印表达式
  • abs() 用于返回一个数的绝对值
  • int() 用于将其他数据类型转换为整数
  • len() 用于返回序列或集合的长度

然而,这些内置函数是有限的,我们可以利用模块来创建更复杂的程序。

模块 是由 Python .py 文件组成的 Python 代码。任何 Python 文件都可以被引用为一个模块。一个名为 hello.py 的 Python 文件具有模块名称 hello,可以被导入到其他 Python 文件中,或者在 Python 命令行解释器中使用。您可以通过阅读《如何在 Python 3 中编写模块》来了解如何创建自己的模块。

模块可以定义函数、类和变量,您可以在其他 Python .py 文件中或通过 Python 命令行解释器中引用这些函数、类和变量。

在 Python 中,通过使用 import 语句来访问模块。当您这样做时,您执行模块的代码,保持定义的作用域,以便您当前的文件可以利用这些定义。

例如,当 Python 导入一个名为 hello 的模块时,解释器首先会搜索内置模块中是否存在名为 hello 的模块。如果没有找到内置模块,Python 解释器将在它从 sys.path 变量接收到的目录列表中搜索名为 hello.py 的文件。

本教程将引导您检查和安装模块,导入模块以及为模块设置别名。

先决条件

您应该已经安装了 Python 3,并在您的计算机或服务器上设置了编程环境。如果您还没有设置编程环境,可以参考适用于您操作系统(Ubuntu、CentOS、Debian 等)的本地编程环境或服务器编程环境的安装和设置指南。

检查和安装模块

Python 标准库中内置了许多模块,这些模块提供了对系统功能的访问或提供了标准化的解决方案。Python 标准库是每个 Python 安装的一部分。

要检查这些 Python 模块是否已准备就绪,请进入您的本地 Python 3 编程环境或基于服务器的编程环境,并在命令行中启动 Python 解释器,如下所示:

python

在解释器中,您可以运行 import 语句,以确保给定的模块已准备好调用,例如:

import math

由于 math 是一个内置模块,您的解释器应该会在不返回任何反馈的情况下完成任务,并返回到提示符。这意味着您无需执行任何操作即可开始使用 math 模块。

让我们使用一个您可能尚未安装的模块,如 2D 绘图库 matplotlib,来运行 import 语句:


                
### Python装饰器的概念 Python装饰器是一种特殊类型的函数,用于修改其他函数的行为而不改变其源代码。这种设计模式允许开发者在不更改原始逻辑的情况下增强或扩展函数的功能[^1]。 装饰器本质上是一个接受函数作为参数并返回新函数的高阶函数。通过这种方式,可以在目标函数执行前后添加额外的操作,从而实现诸如日志记录、性能监控或其他横切关注点的功能[^4]。 --- ### 装饰器的基本结构 以下是装饰器的一个基本例子: ```python def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello() ``` 上述代码展示了如何定义和使用一个简单的装饰器 `my_decorator` 来包裹 `say_hello()` 函数。运行此代码会输出如下内容: ``` Something is happening before the function is called. Hello! Something is happening after the function is called. ``` --- ### 带有参数的装饰器 如果被装饰的函数需要传递参数,则装饰器内部的嵌套函数也需要支持这些参数。下面的例子展示了一个带有参数的装饰器: ```python def do_twice(func): def wrapper_do_twice(*args, **kwargs): func(*args, **kwargs) func(*args, **kwargs) return wrapper_do_twice @do_twice def greet(name): print(f"Hello {name}") greet("Alice") ``` 这段代码将两次调用 `greet("Alice")` 方法,并打印两遍问候语[^2]。 --- ### 使用内置装饰器 Python 提供了一些常用的内置装饰器来简化特定场景下的开发工作。例如: - `@classmethod`: 将方法转换为类方法。 - `@staticmethod`: 定义静态方法。 - `@property`: 把类的方法当作属性访问。 - `@functools.wraps`: 保留原函数元数据(如名称和文档字符串)[^3]。 #### 示例:`@property` 的使用 ```python class Circle: def __init__(self, radius): self._radius = radius @property def area(self): return 3.14 * (self._radius ** 2) c = Circle(5) print(c.area) # 输出圆的面积 ``` 在这个例子中,我们利用 `@property` 将 `area` 方法伪装成属性,使得可以通过对象直接访问计算后的值。 --- ### 类装饰器 除了函数装饰器外,还可以创建类装饰器以更复杂的方式管理状态或者行为。例如,以下代码片段演示了如何使用类装饰器统计某个函数的调用次数: ```python import functools class CallCounter: def __init__(self, func): functools.update_wrapper(self, func) self.func = func self.calls = 0 def __call__(self, *args, **kwargs): self.calls += 1 result = self.func(*args, **kwargs) print(f"{self.func.__name__} has been called {self.calls} times.") return result @CallCounter def add(a, b): return a + b add(1, 2) add(3, 4) ``` 每次调用 `add` 函数时都会更新计数器并将当前调用次数打印出来。 --- ### 总结 装饰器是Python编程中的一个重要工具,能够帮助程序员编写更加模块化、可重用以及易于维护的代码。无论是基础的日志记录还是复杂的跨领域需求处理,都可以借助于这一强大的特性得以解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张无忌打怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值