Python 中的函数是什么?

在 Python 中,函数是一组执行特定任务的相关语句。
函数有助于将我们的程序分解成更小的模块化块。随着我们的程序变得越来越大,函数使它更有条理和易于管理。
此外,它避免了重复并使代码可重用。

函数语法

def function_name(parameters): “””docstring””” 语句
上面显示的是由以下组件组成的函数定义。

  1. def标记函数头开始的关键字。
  2. 用于唯一标识函数的函数名称。函数命名遵循在 Python 中编写标识符的相同规则
  3. 我们将值传递给函数的参数(参数)。它们是可选的。
  4. 一个冒号 (:) 来标记函数头的结尾。
  5. 可选的文档字符串 (docstring) 来描述函数的作用。
  6. 构成函数体的一个或多个有效的 python 语句。语句必须具有相同的缩进级别(通常为 4 个空格)。
  7. return从函数返回值的可选语句。

    函数示例

    def greet(name): “”” This function greets to the person passed in as a parameter “”” print(“Hello, “ + name + “. Good morning!”)

    如何在python中调用函数?

    一旦我们定义了一个函数,我们就可以从另一个函数、程序甚至 Python 提示符中调用它。要调用函数,我们只需键入带有适当参数的函数名称。
    >>> greet(‘Paul’) Hello, Paul. Good morning!
    尝试在带有函数定义的 Python 程序中运行上述代码以查看输出。

def greet(name): “”” This function greets to the person passed in as a parameter “”” print(“Hello, “ + name + “. Good morning!”) greet(‘Paul’)
注意:在python中,函数定义应该总是在函数调用之前出现。否则,我们会得到一个错误。例如,
# function call greet(‘Paul’) # function definition def greet(name): “”” This function greets to the person passed in as a parameter “”” print(“Hello, “ + name + “. Good morning!”) # Erro: name ‘greet’ is not defined


文档字符串

函数头之后的第一个字符串称为文档字符串,是文档字符串的缩写。它简要地用于解释函数的作用。
尽管是可选的,但文档是一种很好的编程实践。除非你记得上周晚餐吃了什么,否则一定要记录你的代码。
在上面的例子中,我们在函数头的正下方有一个文档字符串。我们通常使用三重引号,以便文档字符串可以扩展到多行。我们可以使用这个字符串作为doc函数的属性。
例如
尝试在 Python shell 中运行以下命令以查看输出。
>>> print(greet.doc) This function greets to the person passed in as a parameter

要了解有关 Python 中的文档字符串的更多信息,请访问Python文档字符串。


退货声明

该return语句用于退出函数并返回到调用它的地方。

返回的语法

返回 [表达式列表]
该语句可以包含一个被评估并返回值的表达式。如果语句中没有表达式或return语句本身不存在于函数中,则函数将返回None对象。
例如:
>>> print(greet(“May”)) Hello, May. Good morning! None
这里,None是返回值,因为greet()直接打印名称并且没有return使用任何语句。


返回示例

def absolute_value(num): “””This function returns the absolute value of the entered number””” if num >= 0: return num else: return -num print(absolute_value(2)) print(absolute_value(-4))
输出
2 4


函数在 Python 中是如何工作的?

image.png
Python 中函数的工作


变量的范围和生命周期

变量的范围是程序中识别变量的部分。在函数内部定义的参数和变量在函数外部是不可见的。因此,它们具有局部作用域。
变量的生命周期是变量在内存中存在的时间段。函数内变量的生命周期与函数执行的时间一样长。
一旦我们从函数返回,它们就会被销毁。因此,函数不会记住其先前调用中的变量值。
这是一个示例,用于说明函数内部变量的作用域。

def my_func(): x = 10 print(“Value inside function:”,x) x = 20 my_func() print(“Value outside function:”,x)
输出
函数内值:10 函数外值:20
在这里,我们可以看到 X最初是20。即使函数my_func()改变了值X 到 10,它不影响函数外的值。
这是因为变量 X函数内部与外部不同(函数的局部)。虽然名称相同,但它们是两个作用域不同的不同变量。
另一方面,函数外部的变量从内部可见。它们具有全球范围。
我们可以从函数内部读取这些值,但不能更改(写入)它们。为了在函数外修改变量的值,必须使用关键字将它们声明为全局变量global。