概述
在Python编程语言中,函数是执行特定任务的代码块,它们使得程序更加模块化、可重用和易于维护。Python中的函数可以完成从简单的任务到复杂的操作,并且支持多种高级特性,如默认参数、关键字参数、可变参数、函数注解、lambda表达式、高阶函数等。本文将从基础到高阶,全面介绍Python函数的相关知识。
基础
定义和调用函数
在Python中,使用def
关键字定义函数。
python
def greet(name):
return f"Hello, {name}!"
print(greet("Alice")) # 输出: Hello, Alice!
参数和返回值
函数可以接收参数,并返回一个值。
python
def add(a, b):
return a + b
result = add(3, 4)
print(result) # 输出: 7
默认参数
在定义函数时,可以给参数指定默认值。
python
def power(base, exponent=2):
return base ** exponent
print(power(3)) # 输出: 9
print(power(3, 3)) # 输出: 27
可变参数
使用星号(*
)定义可变数量的参数。
python
def make_greeting(*names):
return ", ".join(names) + "!"
print(make_greeting("Alice", "Bob", "Charlie")) # 输出: Alice, Bob, Charlie!
关键字参数
使用两个星号(**
)定义接受任意数量关键字参数的函数。
python
def build_person(name, **kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
build_person("Alice", age=30, job="Engineer")
高阶
函数注解
Python 3.0+支持函数注解,可以为函数参数和返回值提供元数据。
python
def greet(name: str) -> str:
return f"Hello, {name}!"
print(greet.__annotations__) # 输出: {'name': <class 'str'>, 'return': <class 'str'>}
Lambda表达式
Lambda表达式是简洁定义小函数的方式。
python
add = lambda x, y: x + y
print(add(5, 6)) # 输出: 11
高阶函数
高阶函数是接受其他函数作为参数或返回函数的函数。
python
def apply_function(func, x):
return func(x)
def square(x):
return x * x
print(apply_function(square, 5)) # 输出: 25
装饰器
装饰器是修改其他函数功能的函数。
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 my_function():
print("Hello from my_function!")
my_function()
生成器
使用yield
关键字定义生成器,用于惰性计算。
python
def count_down(num):
while num > 0:
yield num
num -= 1
counter = count_down(3)
print(next(counter)) # 输出: 3
print(next(counter)) # 输出: 2
应用示例
排序函数
使用lambda
表达式和sorted
函数进行排序。
python
numbers = [5, 2, 9, 1, 5, 6]
sorted_numbers = sorted(numbers, key=lambda x: x % 2 == 0, reverse=True)
print(sorted_numbers) # 输出: [5, 5, 9, 6, 2, 1]
带有装饰器的日志记录
使用装饰器记录函数调用日志。
python
def logger(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__} with args: {args}, kwargs: {kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} returned {result}")
return result
return wrapper
@logger
def add(a, b):
return a + b
add(3, 4) # 输出日志和结果
总结
Python函数是编程中的基础构件,它们不仅可以完成特定任务,还可以通过高级特性如装饰器、生成器等增强功能。掌握Python函数的基础知识和高级应用,对于编写高效、可维护的代码至关重要。通过本文的介绍,你应该对Python函数有了更深入的理解,并能够在实际开发中灵活运用。
✅作者简介:热爱科研的人工智能开发者,修心和技术同步精进
❤欢迎关注我的知乎:对error视而不见
代码获取、问题探讨及文章转载可私信。
☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。
🍎获取更多人工智能资料可点击链接进群领取,谢谢支持!👇