当前位置: 代码网 > it编程>前端脚本>Python > Python内置函数之def function_name函数解读

Python内置函数之def function_name函数解读

2025年07月03日 Python 我要评论
在 python 中,def function_name是定义函数的基本语法。函数是组织好的、可重复使用的代码块,用于执行单一或相关联的任务。下面详细介绍函数的定义、参数、返回值及实战案例。1. 函数

在 python 中,def function_name是定义函数的基本语法。函数是组织好的、可重复使用的代码块,用于执行单一或相关联的任务。

下面详细介绍函数的定义、参数、返回值及实战案例。

1. 函数定义语法

def function_name(parameters):
    """函数文档字符串(可选)"""
    # 函数体
    return value  # 返回值(可选)

关键要素

  • def:关键字,声明函数。
  • function_name:函数名,遵循标识符规则(小写字母、下划线)。
  • parameters(参数):函数接收的输入,可选。
  • return:语句,用于返回结果,可省略(默认返回none)。

2. 参数类型

函数参数分为以下几类:

位置参数(positional arguments)

def add(a, b):
    return a + b

result = add(3, 5)  # a=3, b=5,按位置传递参数

默认参数(default arguments)

def greet(name, msg="hello"):
    return f"{msg}, {name}!"

print(greet("alice"))       # 使用默认值:"hello, alice!"
print(greet("bob", "hi"))   # 覆盖默认值:"hi, bob!"

*可变参数(args)

接收任意数量的位置参数,打包为元组。

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3))      # 输出: 6
print(sum_all(1, 2, 3, 4))   # 输出: 10

** 关键字参数(kwargs)

接收任意数量的关键字参数,打包为字典。

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="alice", age=30)
# 输出:
# name: alice
# age: 30

混合使用

def complex_func(a, b=10, *args, **kwargs):
    print(f"a={a}, b={b}, args={args}, kwargs={kwargs}")

complex_func(1, 2, 3, 4, x=5, y=6)
# 输出: a=1, b=2, args=(3, 4), kwargs={'x': 5, 'y': 6}

3. 返回值

函数可通过return语句返回值,支持返回多个值(元组形式)。

def calculate(a, b):
    return a + b, a - b, a * b  # 返回多个值

sum_result, diff_result, prod_result = calculate(5, 3)
print(sum_result)   # 输出: 8
print(diff_result)  # 输出: 2
print(prod_result)  # 输出: 15

4. 实战案例

案例 1:字符串反转

def reverse_string(s):
    return s[::-1]

print(reverse_string("hello"))  # 输出: "olleh"

案例 2:判断素数

def is_prime(num):
    if num < 2:
        return false
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return false
    return true

print(is_prime(7))   # 输出: true
print(is_prime(8))   # 输出: false

案例 3:文件读取

def read_file(filename):
    try:
        with open(filename, 'r') as f:
            return f.read()
    except filenotfounderror:
        return none

content = read_file("data.txt")
if content:
    print(content)
else:
    print("文件不存在")

案例 4:高阶函数(函数作为参数)

def apply_operation(func, a, b):
    return func(a, b)

def multiply(x, y):
    return x * y

result = apply_operation(multiply, 3, 4)
print(result)  # 输出: 12

5. 注意事项

作用域:函数内部定义的变量为局部变量,外部无法访问。

def test():
    x = 10
print(x)  # 报错:nameerror

默认参数的陷阱:默认参数只在函数定义时初始化一次,避免使用可变对象(如列表)作为默认参数。

def append_value(value, lst=[]):  # 错误示例
    lst.append(value)
    return lst

print(append_value(1))  # 输出: [1]
print(append_value(2))  # 输出: [1, 2](非预期)

正确做法

def append_value(value, lst=none):
    if lst is none:
        lst = []
    lst.append(value)
    return lst

文档字符串(docstring):建议为函数添加文档说明,通过__doc__属性访问。

def my_func():
    """这是一个示例函数"""
    pass

print(my_func.__doc__)  # 输出: "这是一个示例函数"

6. 进阶技巧

lambda 函数(匿名函数)

适用于简单的单行函数:

square = lambda x: x ** 2
print(square(5))  # 输出: 25

装饰器(decorators)

用于扩展函数功能:

def timer_decorator(func):
    import time
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        print(f"函数运行时间: {time.time() - start_time}秒")
        return result
    return wrapper

@timer_decorator
def heavy_computation(n):
    return sum(i*i for i in range(n))

heavy_computation(1000000)  # 输出运行时间

总结

函数是 python 编程的核心,通过合理定义参数、返回值和函数体,可以实现代码复用和模块化。掌握位置参数、默认参数、可变参数、关键字参数的用法,以及返回值的处理,是编写高效 python 代码的基础。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com