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

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

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

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

点击领取更多详细资料

相关推荐
hogenlaw4 分钟前
Oracle从入门到放弃
数据库·oracle
亿牛云爬虫专家7 分钟前
优化数据的抓取规则:减少无效请求
python·数据采集·多线程·爬虫代理·数据抓取·代理ip·房价
程序媛堆堆9 分钟前
解决NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+问题
python
DreamByte11 分钟前
Python Tkinter小程序
开发语言·python·小程序
Python极客之家13 分钟前
基于深度学习的眼部疾病检测识别系统
人工智能·python·深度学习·毕业设计·卷积神经网络
卡兰芙的微笑18 分钟前
get_property --Cmakelist之中
前端·数据库·编辑器
Bigcrab__19 分钟前
Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)
爬虫·python·scrapy
覆水难收呀20 分钟前
三、(JS)JS中常见的表单事件
开发语言·前端·javascript
阿华的代码王国24 分钟前
【JavaEE】多线程编程引入——认识Thread类
java·开发语言·数据结构·mysql·java-ee
Z_W_H_29 分钟前
【PostgreSQL】安装及使用(Navicat/Arcgis),连接(C#)
数据库·postgresql