Python 模块

随着程序变得越来越大,它可能包含许多行代码。与其将所有内容放在单个文件中,我们可以使用模块根据功能将代码分隔到不同的文件中。这使得我们的代码结构化且更易于维护。

模块是包含执行特定任务代码的文件。一个模块可能包含变量函数等。我们来看一个例子:

让我们创建一个模块。输入以下内容并将其保存为 example.py

# Python Module addition

def add(a, b):

   result = a + b
   return result

在这里,我们在名为 example 的模块中定义了一个函数 add()。该函数接受两个数字并返回它们的和。


在 Python 中导入模块

我们可以将模块中的定义导入到另一个模块或 Python 的交互式解释器中。

我们使用 import 关键字来完成此操作。要导入我们之前定义的模块 example,我们在 Python 提示符中输入以下内容。

import example

这并不会将 example 中定义的函数名称直接导入到当前的符号表中。它只导入模块名称 example 到那里。

使用模块名称,我们可以通过点 . 运算符访问函数。例如

example.add(4,5) # returns 9

注意:

  • Python 有大量的标准模块。你可以查看Python 标准模块的完整列表及其用例。
  • 标准模块的导入方式与我们导入用户自定义模块的方式相同。

导入 Python 标准库模块

Python 标准库包含超过 200 个模块。我们可以根据需要导入模块。

假设我们想获取 pi 的值,我们首先导入 math 模块并使用 math.pi。例如,

# import standard math module 
import math

# use math.pi to get value of pi
print("The value of pi is", math.pi)

输出

The value of pi is 3.141592653589793

Python 导入时重命名

在 Python 中,我们也可以通过重命名来导入模块。例如,

# import module by renaming it
import math as m

print(m.pi)

# Output: 3.141592653589793

在这里,我们将 math 模块重命名为 m。这在某些情况下可以节省我们输入时间。

请注意,名称 math 在我们的作用域中无法识别。因此,math.pi 是无效的,而 m.pi 才是正确的实现。


Python 的 from...import 语句

我们可以从模块中导入特定的名称,而无需导入整个模块。例如,

# import only pi from math module
from math import pi

print(pi)

# Output: 3.141592653589793

在这里,我们只从 math 模块导入了 pi 属性。


导入所有名称

在 Python 中,我们可以使用以下构造从模块导入所有名称(定义)

# import all names from the standard module math
from math import *

print("The value of pi is", pi)

在这里,我们从数学模块中导入了所有定义。这包括我们作用域中所有可见的名称,除了那些以下划线开头的名称(私有定义)。

用星号 (*) 符号导入所有内容不是一个好的编程习惯。这可能导致标识符的重复定义。它还会降低我们代码的可读性。


dir() 内置函数

在 Python 中,我们可以使用 dir() 函数来列出模块中的所有函数名称。

例如,我们之前在模块 example 中定义了一个函数 add()

我们可以通过以下方式在 example 模块中使用 dir

print(dir(example))

['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']

在这里,我们可以看到一个排序后的名称列表(以及 add)。所有其他以下划线开头的名称都是与模块相关的默认 Python 属性(非用户定义)。

例如,__name__ 属性包含模块的名称。

import example

example.__name__

# Output: 'example'

所有在当前命名空间中定义的名称都可以通过不带任何参数的 dir() 函数找到。

a = 1
b = "hello"

import math

print(dir())

['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']

视频:Python 模块

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战