Python 模块

Python模块本质上是一个Python脚本文件,可以包含变量、函数和类。Python模块帮助我们组织代码,然后在其他类或Python脚本中引用它们。

Python模块

A file containing Python definitions and statements is called a python module. So naturally, the file name is the module name which is appended with the suffix .py. For better understanding let’s create a python module to explore it completely. First create a file named printNumbers.py with the following contents.

def printForward(n):

    #打印1到n
    for i in range(n):
        print(i+1)


def printBackwards(n):

    #打印n到1
    for i in range(n):
        print(n-i)

现在在Python解释器中使用以下命令导入此模块;

import printNumbers

此导入命令将在当前目录和PATH变量位置中查找printNumbers.py文件。一旦找到文件,文件中的代码将可供我们使用。现在要访问模块的函数,我们需要使用模块名称,如下所示:有时,如果模块很大,为了简化函数调用,我们可以像下面这样重命名导入:

导入Python模块的特定函数

有时候导入 Python 模块的所有函数是不必要的。我们可能只需要一个或两个函数。在这种情况下,我们可以使用以下导入语句的变体; 这里需要注意的一件事是,当我们导入printForward时,它被包含在当前符号表中。所以我们不需要像这样调用函数 – printNumbers.printForward() 另一种变体有时可能会有用。在这里,我们使用重命名来简化函数的使用,就像之前做的那样。 另外,如果我们想要导入模块定义的所有名称,还有另一种导入变体。这将导入除了以下划线(_)开头的名称之外的所有名称。但这并不是理想的做法,因为这会向解释器引入一组未知的名称。

关于 Python 模块的常见问题

让我们看看与 Python 模块相关的一些常见问题。

Python 中的内置模块有哪些?

有很多Python的内置模块。其中一些重要的包括 – collections, datetime, logging, math, numpy, os, pip, sys, 和 time。您可以在Python shell中执行 help('modules') 命令来获取可用模块的列表。

在Python中,模块和包有什么区别?

Python包 是一组Python模块。Python模块是单个Python文件,而Python包是一个包含多个Python脚本和 __init__.py 文件以定义包详情的目录。

我在哪里可以找到Python模块列表?

您可以从官方页面的Python模块索引处找到Python模块列表。然而,如果您正在寻找可用的Python模块,那么您可以在Python shell中执行help('modules')命令以获取可用模块的列表。

Python Modules List

请查看这个GitHub存储库,了解大多数重要的Python模块,并通过它们的特定教程和示例程序学习它们。

我如何从不同目录导入模块?

当我们尝试导入Python模块时,它会查找当前目录和PATH变量的位置。因此,如果您的Python文件不在这些位置中,则会收到ModuleNotFoundError。解决方案是导入sys模块,然后将所需目录附加到其路径变量中。下面的代码显示了当我们尝试从不同目录导入时出现的错误,以及我如何通过将其目录添加到路径变量来修复它。

$ python3.7
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import test123
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'test123'
>>> import sys
>>> sys.path.append('/Users/pankaj/temp')
>>> import test123
>>> test123.x
10
>>> test123.foo()
foo
>>> 

Python模块列表

Python有成千上万的模块,每天都有更多的模块被开发出来。我们为许多流行的Python模块编写了教程。只需点击下表中的链接,就可以学习这些模块。

参考资料:

Source:
https://www.digitalocean.com/community/tutorials/python-modules