函数

参数类型

  • 必选参数(Positional Arguments):参数按定义时的顺序传递。

def introduce(name, age):
    print(f"I'm {name}, {age} years old.")

introduce("Bob", 25)
  • 关键字参数:通过参数名=值的形式传递参数,这种情况下不需要保证实参和形参的顺序。

introduce(age=25, name="Bob")
  • 默认参数:在定义函数时为参数指定默认值。默认参数必须放在非默认参数之后。

def introduce(name, age=20):
    print(f"I'm {name}, {age} years old.")

introduce("Bob")
introduce("Bob", 25)
  • 可变参数:使用*args接收任意数量的位置参数,args是一个元组。

def introduce(name, age=20, *args):
    print(f"I'm {name}, {age} years old.")
    print(args)  # 输出 ('Engineer', 'Python', 'USA')

introduce("Bob", 25, "Engineer", "Python", "USA")
  • 可变关键字参数:使用**kwargs接收任意数量的关键字参数,kwargs是一个字典。

circle-check

参数组合顺序

返回值

  • 函数可以返回单个值、多个值(实际上是返回一个元组)、或不返回任何值(隐式返回 None)。

四、作用域(Scope)

Python 遵循 LEGB 规则来查找变量:

  • Local:函数内部

  • Enclosing:外层函数

  • Global:全局作用域

  • Built-in:内置作用域

global 和 nonlocal 关键字

  • global:在函数内部修改全局变量。

  • nonlocal:在嵌套函数中修改外层函数的变量。

匿名函数(Lambda)

使用lambda关键字创建小型匿名函数。

常用于高阶函数,如 mapfiltersorted

装饰器(Decorator)

装饰器是一种特殊类型的函数,它可以修改其他函数的功能。

  • 带参数的装饰器(多层嵌套)

文档字符串(Docstring)

使用三重引号 """ 编写函数的文档,可通过 help().__doc__ 查看。

函数注解(Type Hints)

为参数和返回值提供类型提示,提高代码可读性和可维护性。

最后更新于