AI闪电战:代码+实战 从Python速通到深度学习|自定义模块导入

想要查看本系列的其他文章请到作者主页中。 学习提示:在有别的编程基础之上,学习Python很简单,只是语法不同,所以有很多新的语法记不住也没关系,不用专门耗时间死记,实战的时候现用现查就行。
下面的介绍中是每个部分最常用的语法,基本能够应付绝大多数的情况,如果希望学习更详细的内容,可以参考每个部分给出的资料链接。

AI闪电战:代码+实战 从Python速通到深度学习|自定义模块导入


1. 必要的示例文件创建

引入

在 Python 中,模块是一个包含 Python 定义和语句的文件。我们可以把一些常用的代码封装到模块中,以便在不同的 Python 程序中复用。在开始学习如何导入模块之前,首先需要创建一些必要的示例文件。

创建示例模块文件
  1. 新建一个 Python 文件作为模块
    首先,在你的工作目录中创建一个名为 my_module.py 的文件。这个文件将作为一个模块,里面包含一些函数和变量。

  2. 添加简单的代码到模块中
    my_module.py 文件中编写如下代码:

    # my_module.py
    
    def greet(name):
        return f"Hello, {name}!"
    
    def add(a, b):
        return a + b
    
    PI = 3.14159
    

    这里,我们定义了两个函数 greetadd,以及一个常量 PI

  3. 创建一个主文件来使用这个模块
    创建一个名为 main.py 的 Python 文件,用来导入和使用刚刚创建的 my_module.py 模块。


2. 定义和导入模块

引入

在创建了自定义模块后,我们需要了解如何在 Python 中导入并使用它。通过导入模块,其他文件可以调用模块中的函数、类和变量。本节将展示如何创建并导入一个简单的模块。

常用语法
  1. 创建 Python 文件作为模块
    模块实际上就是一个 .py 文件,其中包含你想要复用的代码片段(函数、变量、类等)。文件名即是模块名,例如 my_module.py

  2. 使用 import 语句导入模块
    一旦你创建了模块,可以使用 import 语句将模块导入到其他 Python 文件中,并调用其中的内容。
    基本的导入语法:

    import 模块名
    
  3. 从模块中调用函数或变量
    一旦模块被导入,你可以使用 模块名.函数名模块名.变量名 的形式来调用模块中的内容。
    示例:

    import my_module
    
    print(my_module.greet('Alice'))
    result = my_module.add(5, 10)
    print(result)
    print(my_module.PI)
    
代码实战:创建和导入一个简单的模块

步骤1:创建 my_module.py 模块
你已经在第1步中创建了 my_module.py 文件,内容如下:

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

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

PI = 3.14159

步骤2:在 main.py 文件中导入并使用模块

import my_module

# 调用模块中的函数和变量
print(my_module.greet('Alice'))  # 输出 "Hello, Alice!"
result = my_module.add(5, 10)    # 输出 15
print(result)
print(my_module.PI)              # 输出 3.14159

运行 main.py 后,输出结果如下:

Hello, Alice!
15
3.14159
要点总结
  • 模块是一个 Python 文件,通常用于组织和复用代码。
  • 使用 import 语句可以导入模块并调用其中的函数和变量。
  • 模块的文件名即模块的名称,且可以通过 模块名.函数名 的方式调用其中内容。
练习与答案
  1. 练习题1:
    创建一个新的 Python 模块 math_utils.py,其中定义一个函数 square,用于计算一个数字的平方。然后在 main.py 中导入并使用该模块。

    答案:

    • 创建 math_utils.py
      # math_utils.py
      def square(x):
          return x * x
      
    • main.py 中导入并使用:
      import math_utils
      
      result = math_utils.square(4)
      print(result)  # 输出 16
      
  2. 练习题2:
    my_module.py 中新增一个常量 E = 2.71828,并在 main.py 中打印该常量。

    答案:

    • my_module.py 中新增:
      E = 2.71828
      
    • main.py 中使用:
      import my_module
      
      print(my_module.E)  # 输出 2.71828
      
  3. 练习题3:

    创建一个 Python 模块 shapes.py,其中定义一个 Circle 类。这个类将有一个方法 area() 用于计算圆的面积(使用圆的半径)。然后在 main.py 中导入并使用这个类。
    答案:
    步骤1: 创建 shapes.py 文件
    在你的项目目录中,创建一个新的文件 shapes.py,并定义 Circle 类,代码如下:

    # shapes.py
    
    class Circle:
        def __init__(self, radius):
            self.radius = radius
    
        def area(self):
            return 3.14159 * self.radius ** 2
    

    步骤2:main.py 中导入并使用 Circle
    接下来,在你的 main.py 文件中,使用 from ... import ... 语法导入 Circle 类,并创建一个圆对象,计算并打印其面积。

    # main.py
    
    from shapes import Circle
    
    # 创建一个半径为5的圆
    my_circle = Circle(5)
    
    # 计算圆的面积
    print(f"The area of the circle is: {my_circle.area()}")
    

    步骤3: 运行 main.py
    当你运行 main.py 时,输出如下:

    The area of the circle is: 78.53975
    
    • shapes.py 中的 Circle 类具有一个构造函数 __init__,用于初始化圆的半径,以及一个方法 area(),用于计算圆的面积。
    • main.py 中,我们使用 from shapes import Circle 导入 shapes.py 模块中的 Circle 类,然后创建一个圆对象并调用 area() 方法计算面积。
更详细的知识点学习链接

3. 包的创建和导入

引入

在 Python 中,包(Package)是一个包含多个模块的目录结构,用于组织和管理大型项目代码。包让多个模块更容易被管理和复用。通过合理的包结构,可以将不同功能的模块放在相应的文件夹下,并且导入时可以保持代码的简洁性和条理性。在本节中,我们将介绍如何创建一个包,以及如何正确导入和使用包中的模块。

常用语法
  1. 创建包的目录结构:
    包其实就是一个包含 __init__.py 文件的目录。你可以在项目中创建一个包的目录结构,类似于下面这样:

    my_package/
        __init__.py
        module_a.py
        module_b.py
    
    • __init__.py:包的标识文件,可以是空文件,但它的存在告诉 Python 这个目录应该被视为一个包。
    • module_a.pymodule_b.py 是包中的两个模块,可以包含相关的功能。
  2. 使用 __init__.py 文件:
    这个文件用于初始化包,也可以在其中定义包级别的代码,如暴露一些模块、定义常量等。
    例如:

    # __init__.py
    
    from .module_a import some_function
    
  3. 导入包中的模块:
    使用包名加模块名的方式来导入包中的模块或函数。例如:

    import my_package.module_a
    

    也可以通过 from ... import ... 语法直接导入模块中的特定函数:

    from my_package.module_a import some_function
    
代码实战:创建和导入一个包

步骤1:创建包的目录结构

  1. 创建一个名为 my_package 的文件夹,代表这个包。
  2. my_package 文件夹下创建一个空的 __init__.py 文件,表示这是一个 Python 包。
  3. 创建两个模块文件 module_a.pymodule_b.py

目录结构:

my_package/
    __init__.py
    module_a.py
    module_b.py

步骤2:编写模块代码

module_a.py 中,定义一个简单的函数:

# module_a.py

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

module_b.py 中,定义一个简单的数学函数:

# module_b.py

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

步骤3:编写 __init__.py 文件

__init__.py 文件中,我们可以指定需要导出的模块或函数。比如可以暴露 greet 函数:

# __init__.py

from .module_a import greet

步骤4:在主文件中导入包并使用

创建一个 main.py 文件,并在其中导入并使用 my_package 中的模块或函数:

# main.py

from my_package import greet
from my_package.module_b import add

print(greet("Alice"))  # 输出 "Hello, Alice!"
print(add(5, 3))       # 输出 8

运行 main.py,输出如下:

Hello, Alice!
8
不同路径下的模块导入

在 Python 中,如果模块或包不在当前工作目录或标准路径下,可以使用 sys.path 来手动添加路径。
例如:

import sys
sys.path.append('/path/to/your/package')

这样你就可以导入位于指定路径的模块了。

要点总结
  • 包是一个包含多个模块的目录,目录中必须包含一个 __init__.py 文件。
  • 通过在 __init__.py 中设置导入,可以方便用户使用包时进行简化的导入操作。
  • 可以通过 import 包名.模块名from 包名 import 函数名 方式导入包中的模块或函数。
  • 当包或模块不在标准路径下时,可以通过 sys.path.append() 动态添加路径来导入模块。
练习与答案
  1. 练习题1:
    创建一个名为 math_package 的包,里面包含两个模块 operations.pyconstants.py,分别定义一个 multiply 函数和一个常量 PI。编写一个 main.py,导入并使用这些功能。

    答案:

    • 目录结构:
      math_package/
          __init__.py
          operations.py
          constants.py
      
    • operations.py 文件:
      # operations.py
      def multiply(a, b):
          return a * b
      
    • constants.py 文件:
      # constants.py
      PI = 3.14159
      
    • __init__.py 文件:
      # __init__.py
      from .operations import multiply
      from .constants import PI
      
    • main.py 文件:
      # main.py
      from math_package import multiply, PI
      
      result = multiply(4, 5)
      print(result)  # 输出 20
      print(PI)      # 输出 3.14159
      
  2. 练习题2:
    将包 my_package 移动到不同目录下,并尝试通过 sys.path.append() 动态添加路径来导入模块。

    答案:

    import sys
    sys.path.append('/path/to/your/my_package')
    from my_package import greet
    
    print(greet("Bob"))  # 输出 "Hello, Bob!"
    
更详细的知识点学习链接

问题解答
由于本系列是基础教程,所以有任何问题基本上国内免费的AI模型都能回答,有任何疑问或Bug可以寻求以下免费的大模型的解答。

  • 豆包:https://www.doubao.com/chat/
  • 文心一言:https://yiyan.baidu.com/
  • 通义千问:https://tongyi.aliyun.com/qianwen/
  • 讯飞星火:https://xinghuo.xfyun.cn/desk

如果觉得有帮助的话,求 关注、收藏、点赞、星星 哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

人工智能技术小白修炼手册

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

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

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

打赏作者

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

抵扣说明:

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

余额充值