亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 模块

Python 模块

在本文中,您将学习在 Python 中创建和导入自定义模块。此外,您还会发现在 Python 中导入和使用自定义和内置模块的不同技术。

视频:Python 模块

Python 中的模块是什么?

模块是指包含 Python 语句和定义的文件。

包含 Python 代码的文件,例如:example.py , 称为模块,其模块名称为 example .

我们使用模块将大型程序分解为可管理且有组织的小文件。此外,模块提供了代码的可重用性。

我们可以在一个模块中定义我们最常用的函数并导入它,而不是将它们的定义复制到不同的程序中。

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

# Python Module example

def add(a, b):
   """This program adds two
   numbers and return the result"""

   result = a + b
   return result

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


如何在 Python 中导入模块?

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

我们使用 import 关键字来做到这一点。导入我们之前定义的模块 example ,我们在 Python 提示符中输入以下内容。

>>> import example

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

使用模块名称,我们可以使用点 . 访问函数 操作员。例如:

>>> example.add(4,5.5)
9.5

Python 有大量的标准模块。您可以查看 Python 标准模块及其用例的完整列表。这些文件位于 Python 安装位置的 Lib 目录中。

标准模块的导入方式与我们导入用户自定义模块的方式相同。

有多种方法可以导入模块。它们在下面列出..


Python 导入语句

我们可以使用 import 导入模块 声明并使用如上所述的点运算符访问其中的定义。这是一个例子。

# import statement example
# to import standard module math

import math
print("The value of pi is", math.pi)

当你运行程序时,输出将是:

The value of pi is 3.141592653589793

重命名导入

我们可以通过重命名来导入一个模块,如下所示:

# import module by renaming it

import math as m
print("The value of pi is", m.pi)

我们重命名了 math 模块为 m .这在某些情况下可以节省我们的打字时间。

请注意,名称 math 在我们的范围内不被认可。因此,math.pi 无效,并且 m.pi 是正确的实现方式。


Python from...import 语句

我们可以从模块中导入特定的名称,而无需将模块作为一个整体导入。这是一个例子。

# import only pi from math module

from math import pi
print("The value of pi is", pi)

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

在这种情况下,我们不使用点运算符。我们也可以导入多个属性,如下:

>>> from math import pi, e
>>> pi
3.141592653589793
>>> e
2.718281828459045

导入所有名称

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

# import all names from the standard module math

from math import *
print("The value of pi is", pi)

在这里,我们已经从数学模块中导入了所有定义。这包括在我们范围内可见的所有名称,但以下划线开头的名称(私有定义)除外。

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


在导入模块时,Python 会查看几个地方。解释器首先寻找一个内置模块。然后(如果未找到内置模块),Python 会查看 sys.path 中定义的目录列表 .搜索是按此顺序进行的。

>>> import sys
>>> sys.path
['',
'C:\\Python33\\Lib\\idlelib',
'C:\\Windows\\system32\\python33.zip',
'C:\\Python33\\DLLs',
'C:\\Python33\\lib',
'C:\\Python33',
'C:\\Python33\\lib\\site-packages']

我们可以添加和修改这个列表来添加我们自己的路径。


重新加载模块

Python 解释器在会话期间只导入一次模块。这使事情更有效率。下面是一个例子来说明它是如何工作的。

假设我们在名为 my_module 的模块中有以下代码 .

# This module shows the effect of
#  multiple imports and reload

print("This code got executed")

现在我们看到了多次导入的效果。

>>> import my_module
This code got executed
>>> import my_module
>>> import my_module

我们可以看到我们的代码只执行了一次。这说明我们的模块只导入了一次。

现在,如果我们的模块在程序运行过程中发生了变化,我们将不得不重新加载它。这样做的一种方法是重新启动解释器。但这并没有多大帮助。

Python 提供了一种更有效的方法来执行此操作。我们可以使用 reload() imp 内的函数 module 重新加载一个模块。我们可以通过以下方式实现:

>>> import imp
>>> import my_module
This code got executed
>>> import my_module
>>> imp.reload(my_module)
This code got executed
<module 'my_module' from '.\\my_module.py'>

dir() 内置函数

我们可以使用 dir() 查找模块内定义的名称的函数。

比如我们定义了一个函数add() 在模块 example 我们一开始就有的。

我们可以使用 direxample 模块方式如下:

>>> dir(example)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add']

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

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

>>> import example
>>> example.__name__
'example'

我们当前命名空间中定义的所有名称都可以使用 dir() 找到 没有任何参数的函数。

>>> a = 1
>>> b = "hello"
>>> import math
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']

Python

  1. Python 数据类型
  2. Python 输入、输出和导入
  3. Python 运算符
  4. Python pass 语句
  5. Python 函数参数
  6. Python 模块
  7. Python字典
  8. Python 迭代器
  9. Python 闭包
  10. Python 日期时间
  11. Python时间模块
  12. Python 睡眠()