Python 模块


在本文中,我们将介绍有关 Python 模块的所有内容,例如如何创建自己的简单模块、导入 Python 模块、Python 中的 From 语句、如何使用别名来重命名模块等。

什么是Python模块

Python)模块是包含 Python 定义和语句的文件。模块可以定义函数、类和变量。模块还可以包含可运行的代码。将相关代码分组到模块中可以使代码更易于理解和使用。它还使代码更有逻辑地组织。

创建 Python 模块

让我们创建一个简单的 calc.py,在其中定义两个函数,一个是add,另一个是 minus

  • Python3
# A simple module, calc.py
def add(x, y):
    return (x+y)

def subtract(x, y):
    return (x-y)

在Python中导入模块

我们可以使用其他 Python 源文件中的import 语句将模块中定义的函数和类导入到另一个模块。

Learn more

当解释器遇到 import 语句时,如果该模块存在于搜索路径中,它将导入该模块。搜索路径是解释器搜索以导入模块的目录列表。例如,要导入模块 calc.py,我们需要将以下命令放在脚本的顶部。

Python 导入的语法

import modulexxxxxxxxxx import module导入模块

注意:这不会直接导入函数或类,而是仅导入模块。要访问模块内的函数,请使用点(.) 运算符。

在 Python 中导入模块示例

现在,我们导入之前创建的计算来执行添加操作。

  • Python3
# importing module calc.py
import calc

print(calc.add(10, 2))

输出:

12

Python 从模块导入

Python 的from语句允许您从模块导入特定属性,而无需导入整个模块。

从 Python 模块导入特定属性

在这里,我们从数学模块导入特定的 sqrt 和阶乘属性。

  • Python3
# importing sqrt() and factorial from the
# module math
from math import sqrt, factorial

# if we simply do "import math", then
# math.sqrt(16) and math.factorial()
# are required.
print(sqrt(16))
print(factorial(6))

输出:

4.0
720

导入所有名称

与 import 语句一起使用的 * 符号用于将模块中的所有名称导入到当前命名空间。

句法:

from module_name import *

Python 中 import * 的作用是什么

使用 有其优点和缺点。如果您确切地知道您需要从模块中获得什么,则不建议使用 ,否则就这样做。

  • Python3
# importing sqrt() and factorial from the
# module math
from math import *

# if we simply do "import math", then
# math.sqrt(16) and math.factorial()
# are required.
print(sqrt(16))
print(factorial(6))

输出

4.0
720

定位 Python 模块

每当在 Python 中导入模块时,解释器都会查找多个位置。首先,它将检查内置模块,如果未找到,则会查找 sys.path 中定义的目录列表。Python 解释器通过以下方式搜索模块 -

  • 首先,它在当前目录中搜索模块。
  • 如果在当前目录中找不到该模块,Python 将在 shell 变量PYTHONPATH中搜索每个目录。PYTHONPATH 是一个环境变量,由目录列表组成。
  • 如果这也失败了,python 会检查安装 Python 时配置的与安装相关的目录列表。

模块的目录列表

这里,sys.path是sys模块中的内置变量。它包含解释器将搜索所需模块的目录列表。

  • Python3
# importing sys module
import sys

# importing sys.path
print(sys.path)

输出:

[‘/home/nikhil/Desktop/gfg’, ‘/usr/lib/python38.zip’, ‘/usr/lib/python3.8’, ‘/usr/lib/python3.8/lib-dynload’, ”, ‘/home/nikhil/.local/lib/python3.8/site-packages’, ‘/usr/local/lib/python3.8/dist-packages’, ‘/usr/lib/python3/dist-packages’, ‘/usr/local/lib/python3.8/dist-packages/IPython/extensions’, ‘/home/nikhil/.ipython’]

重命名Python模块

我们可以在使用关键字导入模块时重命名该模块。

语法: 导入Module_name作为Alias_name

  • Python3
# importing sqrt() and factorial from the
# module math
import math as mt

# if we simply do "import math", then
# math.sqrt(16) and math.factorial()
# are required.
print(mt.sqrt(16))
print(mt.factorial(6))

输出

4.0
720

Python 内置模块

Python 有几个内置模块,您可以随时导入它们。

  • Python3
# importing built-in module math
import math

# using square root(sqrt) function contained
# in math module
print(math.sqrt(25))

# using pi function contained in math module
print(math.pi)

# 2 radians = 114.59 degrees
print(math.degrees(2))

# 60 degrees = 1.04 radians
print(math.radians(60))

# Sine of 2 radians
print(math.sin(2))

# Cosine of 0.5 radians
print(math.cos(0.5))

# Tangent of 0.23 radians
print(math.tan(0.23))

# 1 * 2 * 3 * 4 = 24
print(math.factorial(4))

# importing built in module random
import random

# printing random integer between 0 and 5
print(random.randint(0, 5))

# print random floating point number between 0 and 1
print(random.random())

# random number between 0 and 100
print(random.random() * 100)

List = [1, 4, True, 800, "python", 27, "hello"]

# using choice function in random module for choosing
# a random element from a set such as a list
print(random.choice(List))


# importing built in module datetime
import datetime
from datetime import date
import time

# Returns the number of seconds since the
# Unix Epoch, January 1st 1970
print(time.time())

# Converts a number of seconds to a date object
print(date.fromtimestamp(454554))

输出:

5.0
3.14159265359
114.591559026
1.0471975512
0.909297426826
0.87758256189
0.234143362351
24
3
0.401533172951
88.4917616788
True
1461425771.87


原文链接:codingdict.net