在Python中模块和功能的区别
Python是一种被认为是先进的、以优化能力闻名的编程语言。Python减少了冗余的编程特性,使工具在利用方面更加丰富。在接下来的教程中,我们将讨论Python编程语言中模块和功能的区别。
什么是模块
模块 只是一个Python文件,具有 .py 扩展名,程序员可以在另一个Python程序中导入它。
Python文件的名称成为模块的名称。
模块包含以下定义和实现:
- 类
- 变量
- 函数
它们可以在另一个程序中使用。
模块的好处
- 可重用性: 使用模块使代码可重用。
- 简单性: 模块针对问题的一小部分而不是整个问题。
- 作用域: 模块定义了一个独立的命名空间,可以避免标识符之间的冲突。
什么是函数
函数 是一段有组织且可重用的代码块,用于执行一个单独的、相关的活动。函数可以分为不同类型:
- 用户定义函数
- 内置函数
- 匿名函数
- 递归函数
用户定义函数
我们定义的函数用于执行特定的活动,这些函数被称为用户定义函数。
用户定义函数的好处
- 我们可以使用用户定义函数将大型程序分解为小段,使程序易于理解、维护和调试。
- 假设一个程序中出现了重复的代码。我们可以使用函数来包含这些代码,并在需要时调用该函数来执行。
内置函数
Python有许多预先定义好的可供使用的函数,称为内置函数。
内置函数列表
abs(), delattr(), hash(), memoryview(), set(), all(), dict(), help(), min(), setattr(), any(), dir(), hex(), next(), slice(), ascii(), divmod(), id(), object(), sorted(), bin(), enumerate(), input(), oct(), staticmethod(), bool(), eval(), int(), open(), str(), breakpoint(), exec(), isinstance(), ord(), sum(), bytearray(), filter(), issubclass(), pow(),super(), bytes(), float(), iter(), print(), tuple(), callable(), format(), len(), property(), type(), chr(), frozenset(), list(), range(), vars(), classmethod(), getattr(), locals(), repr(), zip(), compile(), globals(), map(), reversed(), __import__(), complex(), hasattr(), max(), round()
Lambda 函数
Lambda 函数,也被称为匿名函数,是在没有名称的情况下定义的函数。
在 Python 中,我们可以使用 def 关键字定义普通函数,也可以使用 lambda 关键字定义匿名函数。
在 Python 中使用 Lambda 函数的用途:
需要一个无名称的函数在短时间内使用。在 Python 中,我们通常将其作为高阶函数的参数(高阶函数是一个接受其他函数作为参数的函数)使用。
Lambda 函数通常与内置函数如 filter() 和 map() 等一起使用。
- filter(): 顾名思义,它用于根据要求过滤可迭代对象。filter() 函数可以过滤原始可迭代对象,并传递那些对于给定的函数返回 TRUE 的元素。
- map(): map() 函数在可迭代对象中执行函数的所有要求,并允许我们对其应用一个函数,然后将其传递给结果,该结果可以具有相同和不同的值。
递归函数
递归函数是通过自引用表达式定义的函数。这意味着函数将继续调用自身并重复其行为,直到满足某些要求以返回输出为止。
在 Python 中定义和使用模块
在接下来的部分,我们将了解如何在 Python 中定义和使用模块。
为了开始,我们将创建一个带有 .py 扩展名的 Python 程序文件,并将其保存在本地仓库中。现在,我们可以使用这个程序文件将其导入到应用程序中,以便在应用程序中使用该模块的功能。
我们可以使用 import 命令来导入多个模块。
语法:
import module_1, module_2, ...
注意:一旦我们在程序代码中包含了该模块,我们就会执行代码而不调用任何函数。这是因为我们在文件中定义并调用了函数。因此,整个文件被首先作为一个较大规模的函数执行,同时在调用时被执行。
让我们考虑以下示例。
示例:
# importing a module
import math
我们可以从我们创建的模块中删除函数的调用,并使用点 . 运算符访问函数的属性、类和所有其他值。
语法:
module_1.func_1()
module_2.name
让我们考虑下面的示例。
示例:
# importing a module
import math
# using the sqrt() function of the math module
print("Square root of 16:", math.sqrt(16))
输出:
Square root of 16: 4.0
说明:
在上面的代码片段中,我们导入了 math 模块。然后我们使用了 math 模块的 sqrt() 函数来找到 16 的平方根,并将其打印给用户。
在Python中定义和调用函数
在下面的部分,我们将了解如何在Python中定义和调用函数。
让我们考虑以下示例以了解函数的定义和调用。
示例:
# defining a function
def my_func():
print("Greetings User! Welcome to Javatpoint.")
# calling the function
my_func()
输出:
Greetings User! Welcome to Javatpoint.
解释:
在上面的代码片段中,我们定义了一个简单的函数,用于打印字符串并终止程序。这个函数的代码也可以进行改动,使其更具有实用性。
我们可以向函数传递一个参数,并通过不硬编码字符串来使上述代码块更具可重用性。
让我们考虑下面的示例。
示例:
# defining a function
def my_func(name):
print("Greetings " + name + ", Welcome to Javatpoint.")
# calling the function
my_func("Daniel")
my_func("Michelle")
my_func("Chris")
my_func("Dana")
输出:
Greetings Daniel, Welcome to Javatpoint.
Greetings Michelle, Welcome to Javatpoint.
Greetings Chris, Welcome to Javatpoint.
Greetings Dana, Welcome to Javatpoint.
解释:
在上面的代码片段中,我们定义了一个接受参数为’ name ‘的函数,并打印了包含该参数的语句。然后,我们通过指定 name 参数的值来调用该函数,并从函数中打印不同的语句。
如我们所见,我们不需要为不同的字符串重写函数或重复定义它。我们可以在整个应用程序中多次调用此函数。
结论
模块和函数在目的上可能看起来相似,即可重用性。但是,由于模块在不同的类、函数和属性中使用以实现更大的功能,因此模块在更大的范围内。同时,函数更适用于较小规模的特定活动。