Python函数

Python函数_第1张图片

1 文档字符串

函数定义下的第一个字符串是文档字符串,用于解释函数。可以通过 help(function_name)function_name.__doc__ 来查看。

2 函数返回

  • 单个返回值:return 一个值
  • 无返回值:函数执行完毕没有 return 语句,或者 return 后面没有值,会隐式地返回 None
  • 返回多个值:实际上是返回一个包含所有值的 元组 ( tuple )

3 参数

函数声明:使用 def 关键字来创建函数
  • 默认参数值只在函数定义时计算一次
  • *args ( 位置可变参数 ):将传入的多个位置参数打包成一个 元组 ( tuple )
  • **kwargs ( 关键字可变参数 ):将传入的多个关键字参数打包成一个 字典 ( dictionary )
  • 带有默认值的参数必须放在没有默认值的参数之后
  • 仅限位置参数 ( Positional-Only Parameters ) 必须放在所有其他参数类型之前
  • 仅限关键字参数 ( Keyword-Only Parameters ) 必须在 **args 之后
  • 可变位置参数 ( *args ) 仅限关键字参数和 **kwargs 之前
  • 可变关键字参数 ( **kwargs ) 必须是函数签名中的最后一个参数
函数调用:使用函数名加上括号 () 来执行函数
  • 调用时一旦开始使用关键字参数,就不能再提供任何位置参数了

4 函数注解

Python3支持类型注解,但不强制类型检查

def add(a: int, b: int) -> int:
    return a + b

5 作用域与命名空间 ( Scope & Namespace )

python 是函数级作用域而非块级作用域,这决定了变量在何处是可见和可访问的。Python 遵循 LEGB 规则 查找变量:
L ( Local ):函数内部的本地作用域。
E ( Enclosing ):嵌套函数中,外部(非全局)函数的作用域。
G ( Global ):模块顶层的全局作用域。
B ( Built-in ):Python 内置的名称,如 print, len 等。

6 其它函数

  • 高阶函数:函数可以作为参数传递或作为返回值的函数
  • Lambda 函数(匿名函数):常与 map() filter() sorted() 等高阶函数结合使用
  • 装饰器函数:装饰器是修改其他函数行为的函数
  • 生成器函数:使用 yield 关键字返回生成器:
  • 递归函数:函数调用自身

你可能感兴趣的:(python知识)