Python的函数
Python的函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经了解到了一些函数的基本知识,下面是一些更高级的内容。
参数类型
在Python中,函数的参数可以是不同的类型:
位置参数(Positional Arguments):按顺序传递的参数。
默认参数(Default Arguments):带有默认值的参数。
可变位置参数(Variable-length Positional Arguments):*args,允许你传递任意数量的非关键字参数。
关键字参数(Keyword Arguments):允许你通过参数名来传递参数。
可变关键字参数(Variable-length Keyword Arguments):**kwargs,允许你传递任意数量的关键字参数。
参数解包
使用 * 和 ** 可以进行参数解包:
python
复制
def func(a, b, c): print(a, b, c) args = (1, 2, 3) func(*args) # 等同于 func(1, 2, 3) kwargs = {'a': 1, 'b': 2, 'c': 3} func(**kwargs) # 等同于 func(a=1, b=2, c=3)
匿名函数
Python支持匿名函数,也就是lambda函数。lambda函数可以接受任何数量的参数,但只能有一个表达式。
python
复制
add = lambda x, y: x + y print(add(5, 3)) # 输出: 8
递归
函数可以调用自身,这被称为递归。
python
复制
def factorial(n): if n == 1: return 1 else: return n * factorial(n-1) print(factorial(5)) # 输出: 120
内置函数
Python有许多内置函数,如print()、len()、sorted()等。你可以使用help()函数获取这些内置函数的文档。
python
复制
help(print)
函数注解
Python 3引入了函数注解,允许你为函数的参数和返回值添加元数据。
python
复制
def add(x: int, y: int) -> int: return x + y
装饰器
装饰器是一种非常有用的功能,允许你修改或扩展函数的行为。装饰器本质上是接受函数作为参数并返回一个新函数的函数。
python
复制
def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper @my_decorator def say_hello(): print("Hello!") say_hello()
掌握这些高级函数概念对于编写高效和优雅的Python代码至关重要。函数是Python编程的核心,它们使你能够将复杂的任务分解成简单的、可管理的部分。