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

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

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

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

点击领取更多详细资料

相关推荐
一只淡水鱼662 分钟前
【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
java·数据库·spring·mybatis
张声录14 分钟前
【ETCD】【实操篇(十六)】基于角色的访问控制:ETCD 安全管理指南
数据库·安全·etcd
warrah10 分钟前
redis——岁月云实战
数据库·redis·缓存
秀儿y11 分钟前
Redis-十大数据类型
数据库·redis·缓存·oracle
工业互联网专业21 分钟前
Python毕业设计选题:基于python的酒店推荐系统_django+hadoop
hadoop·python·django·vue·毕业设计·源码·课程设计
任小永的博客28 分钟前
VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
后端·python·django
凡人的AI工具箱30 分钟前
每天40分玩转Django:Django类视图
数据库·人工智能·后端·python·django·sqlite
余生H34 分钟前
前端Python应用指南(三)Django vs Flask:哪种框架适合构建你的下一个Web应用?
前端·python·django
路在脚下@35 分钟前
MySQL的索引失效的原因有那些
数据库·mysql
凡人的AI工具箱40 分钟前
每天40分玩转Django:实操图片分享社区
数据库·人工智能·后端·python·django