【Python篇】Python 函数综合指南——从基础到高阶

概述

在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视而不见

代码获取、问题探讨及文章转载可私信。

☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。

🍎获取更多人工智能资料可点击链接进群领取,谢谢支持!👇

点击领取更多详细资料

相关推荐
仙俊红16 分钟前
Java Map 家族核心解析
java·开发语言
浅念-19 分钟前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
百***074520 分钟前
一步API+Gemini 3.0 Pro进阶实战:多模态开发、性能调优与项目落地
数据库·microsoft
不想写bug呀20 分钟前
Redis主从复制介绍
数据库·redis
颜颜yan_20 分钟前
Oracle 迁移到 KingbaseES 实战:从评估到追平的一套可落地流程
数据库·oracle
砚边数影36 分钟前
Oracle迁移替换实战:金仓数据库如何破解企业数据迁移难题
数据库·oracle·kingbase·kingbasees·数据库平替用金仓·金仓数据库
burning_maple1 小时前
mysql数据库笔记
数据库·笔记·mysql
Navicat中国1 小时前
1月31日·上海 | Navicat 鼎力助阵 OceanBase 年度嘉年华
数据库·oceanbase·navicat
q_35488851531 小时前
AI大模型:python新能源汽车推荐系统 协同过滤推荐算法 Echarts可视化 Django框架 大数据毕业设计(源码+文档)✅
大数据·人工智能·python·机器学习·信息可视化·汽车·推荐算法
Yeats_Liao1 小时前
开源生态资源:昇腾社区ModelZoo与DeepSeek的最佳实践路径
python·深度学习·神经网络·架构·开源