AI闪电战:代码+实战 从Python速通到深度学习|自定义模块导入
《AI闪电战:代码+实战 从Python速通到深度学习》系列博客为有编程经验的学习者提供快速入门路径。遵循奥卡姆剃刀原则,博客讲解最必须的内容,助读者在最短时间内掌握核心技能并应用于实际项目。涵盖从Python基础到深度学习的各方面,包括数据处理、机器学习、深度学习基础、计算机视觉和自然语言处理。每篇博客配有详细的代码注释和实战练习。
想要查看本系列的其他文章请到作者主页中。 学习提示:在有别的编程基础之上,学习Python很简单,只是语法不同,所以有很多新的语法记不住也没关系,不用专门耗时间死记,实战的时候现用现查就行。
下面的介绍中是每个部分最常用的语法,基本能够应付绝大多数的情况,如果希望学习更详细的内容,可以参考每个部分给出的资料链接。
AI闪电战:代码+实战 从Python速通到深度学习|自定义模块导入
1. 必要的示例文件创建
引入
在 Python 中,模块是一个包含 Python 定义和语句的文件。我们可以把一些常用的代码封装到模块中,以便在不同的 Python 程序中复用。在开始学习如何导入模块之前,首先需要创建一些必要的示例文件。
创建示例模块文件
-
新建一个 Python 文件作为模块
首先,在你的工作目录中创建一个名为my_module.py的文件。这个文件将作为一个模块,里面包含一些函数和变量。 -
添加简单的代码到模块中
在my_module.py文件中编写如下代码:# my_module.py def greet(name): return f"Hello, {name}!" def add(a, b): return a + b PI = 3.14159这里,我们定义了两个函数
greet和add,以及一个常量PI。 -
创建一个主文件来使用这个模块
创建一个名为main.py的 Python 文件,用来导入和使用刚刚创建的my_module.py模块。
2. 定义和导入模块
引入
在创建了自定义模块后,我们需要了解如何在 Python 中导入并使用它。通过导入模块,其他文件可以调用模块中的函数、类和变量。本节将展示如何创建并导入一个简单的模块。
常用语法
-
创建 Python 文件作为模块
模块实际上就是一个.py文件,其中包含你想要复用的代码片段(函数、变量、类等)。文件名即是模块名,例如my_module.py。 -
使用
import语句导入模块
一旦你创建了模块,可以使用import语句将模块导入到其他 Python 文件中,并调用其中的内容。
基本的导入语法:import 模块名 -
从模块中调用函数或变量
一旦模块被导入,你可以使用模块名.函数名或模块名.变量名的形式来调用模块中的内容。
示例: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:
创建一个新的 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:
在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:
创建一个 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.53975shapes.py中的Circle类具有一个构造函数__init__,用于初始化圆的半径,以及一个方法area(),用于计算圆的面积。- 在
main.py中,我们使用from shapes import Circle导入shapes.py模块中的Circle类,然后创建一个圆对象并调用area()方法计算面积。
更详细的知识点学习链接
3. 包的创建和导入
引入
在 Python 中,包(Package)是一个包含多个模块的目录结构,用于组织和管理大型项目代码。包让多个模块更容易被管理和复用。通过合理的包结构,可以将不同功能的模块放在相应的文件夹下,并且导入时可以保持代码的简洁性和条理性。在本节中,我们将介绍如何创建一个包,以及如何正确导入和使用包中的模块。
常用语法
-
创建包的目录结构:
包其实就是一个包含__init__.py文件的目录。你可以在项目中创建一个包的目录结构,类似于下面这样:my_package/ __init__.py module_a.py module_b.py__init__.py:包的标识文件,可以是空文件,但它的存在告诉 Python 这个目录应该被视为一个包。module_a.py和module_b.py是包中的两个模块,可以包含相关的功能。
-
使用
__init__.py文件:
这个文件用于初始化包,也可以在其中定义包级别的代码,如暴露一些模块、定义常量等。
例如:# __init__.py from .module_a import some_function -
导入包中的模块:
使用包名加模块名的方式来导入包中的模块或函数。例如:import my_package.module_a也可以通过
from ... import ...语法直接导入模块中的特定函数:from my_package.module_a import some_function
代码实战:创建和导入一个包
步骤1:创建包的目录结构
- 创建一个名为
my_package的文件夹,代表这个包。 - 在
my_package文件夹下创建一个空的__init__.py文件,表示这是一个 Python 包。 - 创建两个模块文件
module_a.py和module_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:
创建一个名为math_package的包,里面包含两个模块operations.py和constants.py,分别定义一个multiply函数和一个常量PI。编写一个main.py,导入并使用这些功能。答案:
- 目录结构:
math_package/ __init__.py operations.py constants.py operations.py文件:# operations.py def multiply(a, b): return a * bconstants.py文件:# constants.py PI = 3.14159__init__.py文件:# __init__.py from .operations import multiply from .constants import PImain.py文件:# main.py from math_package import multiply, PI result = multiply(4, 5) print(result) # 输出 20 print(PI) # 输出 3.14159
- 目录结构:
-
练习题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
如果觉得有帮助的话,求 关注、收藏、点赞、星星 哦!
更多推荐
所有评论(0)