苦练Python第16天:Python模块与import魔法

苦练Python第16天:Python模块与import魔法

原文链接:dev.to/therahul_gu...

作者:Rahul Gupta

译者:倔强青铜三

前言

大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到 100 天 Python 挑战 的 第 16 天 !

今天,我们将深入 模块(Modules) ------ 构建可复用 Python 代码的基石。

借助模块,你可以优雅地组织程序、避免重复劳动,并轻松调用 Python 标准库乃至第三方生态里成千上万的现成工具。


🧠 什么是模块?

在 Python 世界里,模块 就是 包含 Python 代码的文件 。

这些代码可以是函数、类或变量,供你在其他文件里反复使用。

Python 自带了庞大的 内置模块 (如 math、random、datetime),也支持你创建 自定义模块。


🔧 用 import 解锁模块

想使用某个模块?只需一句 import。

示例:

python 复制代码
import math

print(math.sqrt(16))  # 输出: 4.0

这行代码告诉 Python:"我要借用 math 模块的函数!"


🎯 常用内置模块一览

模块 功能
math 数学运算,如 sqrt、sin
random 随机数生成
datetime 日期与时间操作
os 与操作系统交互
sys 访问系统级参数

🛠 四种导入姿势

1️⃣ 直接导入模块

python 复制代码
import math
print(math.pi)

2️⃣ 精准导入函数

python 复制代码
from math import sqrt
print(sqrt(25))  # 无需 math.sqrt

3️⃣ 通配导入(不推荐)

python 复制代码
from math import *
print(cos(0))  # ⚠️ 容易造成命名冲突

4️⃣ 起个别名,省敲键盘

python 复制代码
import datetime as dt
print(dt.datetime.now())

🧪 实战:随机密码生成器

python 复制代码
import random
import string

def generate_password(length):
    chars = string.ascii_letters + string.digits
    return ''.join(random.choice(chars) for _ in range(length))

print(generate_password(10))

🧰 打造你的专属模块

把函数写在 .py 文件里,就成了模块。

新建 math_utils.py

python 复制代码
def square(x):
    return x * x

在同级目录的另一个文件里使用

python 复制代码
import math_utils

print(math_utils.square(4))  # 输出: 16

若文件不在同一目录,可配置 Python 模块搜索路径。


📁 包 vs 模块

  • 模块 :单个 .py 文件
  • 包 :含多个模块的 文件夹 , Python3.3之前 必须包含 __init__.py。从Python 3.3开始,引入了PEP 420标准,允许通过隐式命名空间包(Implicit Namespace Packages) 的方式创建包,此时包目录中不再强制需要包含 __init__.py 文件。

从包导入模块示例:

python 复制代码
from mypackage import mymodule

⚙️ 彩蛋:查看模块"目录"

想知道模块里都有啥?

python 复制代码
import math
print(dir(math))  # 列出所有属性

或查看文档:

python 复制代码
help(math)

🧼 最佳实践小结

  • ✅ 优先 import module 或 from module import specific_function
  • 🚫 避免 from module import * ------ 污染命名空间
  • 🧱 大项目拆成可复用模块
  • 🧪 通用工具放 utils.py

🧠 今日速记

  • 模块:复用代码的 .py 文件
  • 导入:关键字 import 的多种姿势
  • 内置:math、random、datetime 等开箱即用
  • 自建:写函数 → 保存 .py → import 即可
  • 进阶:包是模块的文件夹升级版

最后感谢阅读!欢迎关注我,微信公众号 :倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

相关推荐
梦幻精灵_cq1 小时前
《SGR修行之路》——二○二一五二〇,初识终端点红裳
python·生活
Kobebryant-Manba1 小时前
IEKT向量矩阵流程&评估
人工智能·算法·矩阵
看浪的路人1 小时前
第2讲:LLM API 统一网关——把 OpenAI/Claude/文心一言 管起来
人工智能·文心一言
八月的雨季 最後的冰吻1 小时前
音视频面试--延迟优化
面试·职场和发展·音视频
奈落241 小时前
工程界讲角色边界,控制论讲博弈与稳定性:从 Swarms 的实践清单到《自动化学报》的协同综述,多智能体‘协同‘这件事有两套语言
人工智能·深度学习·自动化·ai 编程
我要见SA姐11 小时前
Chrome 内存泄漏诊断指南:从现象定位到根因排查
ide·vscode·python·自动化·编辑器
小王R语言学习1 小时前
PaddleNLP:基于飞桨的大模型开发套件
人工智能·其他·paddlepaddle
椒颜皮皮虾྅1 小时前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
roman_日积跬步-终至千里1 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
BJ_Bonree2 小时前
聊点技术 | Bonree ONE 业务链路观测实战 支付成功率下降,问题究竟出在哪一环?
大数据·人工智能