首页 论坛 置顶 Python基础 :模块与包

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 作者
    帖子
  • #27310

    模块与包(import, from, main

    项目:构建一个模块化的“数学与问候工具包”,以导入和重用你自己的函数。


    01. 学习目标

    在本课结束时,你将能够:

      • 理解什么是模块
      • 导入内置和自定义的Python模块
      • 有效使用from-import别名main
      • 组织你的代码以实现可重用性和清晰性

    02. 问题场景

    随着项目的增长,你会希望将代码组织成更小的、可重用的文件。

    与其将所有内容放在一个Python文件中,你将学习使用模块来使你的项目可扩展且整洁。


    03. 第一步 – 什么是模块?

    模块只是一个包含函数、类或变量的Python文件(.py)。

    你可以将其导入到另一个文件中以重用其代码。

    示例:使用Python内置的math模块

    import math
    
    print(math.sqrt(16))   # 4.0
    print(math.pi)         # 3.141592...

    04. 步骤2 – 不同的导入方式

    根据你的使用场景,可以通过多种方式导入模块。

    # 导入整个模块
    import math
    print(math.sqrt(25))
    
    # 导入特定函数
    from math import sqrt, pi
    print(sqrt(25), pi)
    
    # 使用别名以方便调用
    import math as m
    print(m.sqrt(36))

    05. 第三步 – 创建您自己的模块

    您可以创建自己的 Python 文件并将其作为模块重用。

    calc.py

    def add(a, b):
        return a + b
    
    def sub(a, b):
        return a - b

    main.py

    import calc
    
    print(calc.add(3, 5))   # 8
    print(calc.sub(10, 7))  # 3

    当你导入 calc 时,Python 会自动运行该文件一次,并提供对其函数的访问。


    06. 第四步 – 什么是包?

    是一个包含多个模块的文件夹。
    它必须包含一个 __init__.py 文件才能被识别为包。

    my_package/
        __init__.py
        math_ops.py
        string_ops.py
    from my_package import math_ops
    print(math_ops.add(2, 3))

    包使得在大型项目中将相关模块分组变得简单。


    07. 第五步 – __name____main__ 检查

    每个 Python 文件可以作为以下两者之一:

    1. 脚本(直接运行)
    2. 模块(被导入到另一个文件中)

    你可以使用 if __name__ == "__main__": 来区分它们。

    # test.py
    def hello():
        print("Hello!")
    
    if __name__ == "__main__":
        hello()

    直接执行时:

    $ python test.py
    你好!

    导入时:

    import test
    
    # 不会自动打印

    这使您能够包含仅在直接执行时运行的测试代码或演示。


    08. 第六步 – 安装外部库

    您可以使用pip安装第三方库。

    pip install requests

    然后,在你的项目中使用它:

    import requests
    
    res = requests.get("https://api.github.com")
    print(res.status_code)

    09. 第7步 – 实践示例

    示例1:标准模块

    import random
    
    print(random.randint(1, 6))   # 掷骰子

    示例 2:自定义模块

    greet.py

    def say_hello(name):
        return f"你好,{name}!"

    main.py

    import greet
    print(greet.say_hello("Sabin"))

    10. 第8步 – 迷你项目:数学与问候工具包

    让我们构建一个简单的包,结合数学和问候模块。

    项目结构

    toolkit/
        __init__.py
        math_tools.py
        greet_tools.py
    main.py

    math_tools.py

    def add(a, b):
        return a + b
    
    def multiply(a, b):
        return a * b

    greet_tools.py

    def greet(name):
        return f"欢迎, {name}!"

    main.py

    from toolkit import math_tools, greet_tools
    
    print(math_tools.add(10, 5))
    print(greet_tools.greet("Sabin"))
    

    输出:

    15
    欢迎,Sabin!

    11. 反思

    您已经学习了如何:

      • 导入内置和自定义模块
      • 将多个文件组织成
      • 使用__main__将测试代码与导入分开
      • 构建您自己的数学与问候工具包以便重用代码

正在查看 1 个帖子:1-1 (共 1 个帖子)
  • 哎呀,回复话题必需登录。