苦练Python第16天:Python模块与import魔法
作者: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.sqrt3️⃣ 通配导入(不推荐)
            
            
              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即可
- 进阶:包是模块的文件夹升级版
最后感谢阅读!欢迎关注我,微信公众号 :
倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!