Python 函数详解:从基础到进阶,全面掌握 Normal 函数271
Python 的函数是其核心组成部分,提供了代码模块化、复用和组织的机制。本文将深入探讨 Python 中的 "normal 函数"(即非 lambda 函数、非装饰器函数等特殊形式的函数),涵盖其定义、参数传递、返回值、作用域、以及一些高级用法。 通过本文,你将对 Python 函数有更全面、更深入的理解。
一、函数的定义和调用
Python 函数使用 def 关键字定义,其基本语法如下:def function_name(parameter1, parameter2, ...):
"""Docstring: 描述函数的功能"""
# 函数体:一系列语句
return value # 可选的返回值
其中:
function_name:函数名,遵循标识符命名规则。
parameter1, parameter2, ...:函数的参数,可以是零个或多个。
Docstring:函数的文档字符串,用于描述函数的功能,可以通过 help(function_name) 查看。
return value:函数的返回值,可以是任意类型的值,也可以没有返回值 (隐式返回 None)。
调用函数只需要使用函数名,并提供相应的参数:result = function_name(argument1, argument2, ...)
print(result)
二、参数传递
Python 函数支持多种参数传递方式:
位置参数 (Positional Arguments): 参数按照顺序传递,参数的个数必须与函数定义中的参数个数匹配。
关键字参数 (Keyword Arguments): 参数以 key=value 的形式传递,顺序可以随意。
默认参数 (Default Arguments): 在函数定义中为参数指定默认值,调用时可以省略该参数。
可变参数 (*args): 使用 * 号,可以接收任意数量的位置参数,这些参数会被打包成一个元组。
关键字可变参数 (kwargs): 使用 号,可以接收任意数量的关键字参数,这些参数会被打包成一个字典。
示例:def my_function(a, b, c=3, *args, kwargs):
print(f"a: {a}, b: {b}, c: {c}")
print(f"args: {args}")
print(f"kwargs: {kwargs}")
my_function(1, 2)
my_function(1, 2, 4, 5, 6, name="Alice", age=30)
三、返回值
函数可以使用 return 语句返回一个或多个值。如果没有 return 语句,则隐式返回 None。def add(x, y):
return x + y
def multiple_returns():
return 1, 2, 3
sum_result = add(1, 2)
a, b, c = multiple_returns()
四、作用域
Python 的作用域遵循 LEGB 规则:Local(局部) -> Enclosing function locals(闭包函数局部) -> Global(全局) -> Built-in(内置)。
局部变量在函数内部定义,只能在函数内部访问。全局变量在函数外部定义,可以在函数内部访问,但修改全局变量需要使用 global 关键字。global_var = 10
def my_function():
local_var = 5
global global_var
global_var = 20
print(f"local_var: {local_var}, global_var: {global_var}")
my_function()
print(f"global_var: {global_var}")
五、递归函数
递归函数是指在函数内部调用自身的函数。递归函数需要有一个终止条件,否则会陷入无限递归。def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
六、匿名函数 (lambda 函数)
虽然标题是关于 normal 函数,但为了完整性,我们也简要介绍一下 lambda 函数。lambda 函数是一种简短的匿名函数,通常用于简单的操作。add = lambda x, y: x + y
print(add(1, 2))
七、文档字符串 (Docstrings)
良好的文档字符串对于代码的可维护性至关重要。使用三个双引号 ("""Docstring""") 来编写函数的文档字符串,解释函数的功能、参数、返回值等信息。
八、异常处理
在函数内部可以使用 try...except 块来处理可能出现的异常,提高代码的鲁棒性。def divide(x, y):
try:
result = x / y
return result
except ZeroDivisionError:
return "Division by zero!"
print(divide(10, 2))
print(divide(10, 0))
总而言之,熟练掌握 Python 的 normal 函数是编写高效、可维护代码的关键。 通过理解参数传递、返回值、作用域以及异常处理等机制,你可以编写出更强大、更灵活的 Python 程序。
2025-07-15

彻底清除Java表格应用中的残留数据:方法与最佳实践
https://www.shuihudhg.cn/124691.html

PHP与数据库交互:架构设计、性能优化及安全防护
https://www.shuihudhg.cn/124690.html

PHP批量文件上传:限制数量、安全处理及最佳实践
https://www.shuihudhg.cn/124689.html

C语言浮点数输出详解:如何正确输出0.5及其他浮点数
https://www.shuihudhg.cn/124688.html

Python 用户注册系统:安全可靠的代码实现与最佳实践
https://www.shuihudhg.cn/124687.html
热门文章

Python 格式化字符串
https://www.shuihudhg.cn/1272.html

Python 函数库:强大的工具箱,提升编程效率
https://www.shuihudhg.cn/3366.html

Python向CSV文件写入数据
https://www.shuihudhg.cn/372.html

Python 静态代码分析:提升代码质量的利器
https://www.shuihudhg.cn/4753.html

Python 文件名命名规范:最佳实践
https://www.shuihudhg.cn/5836.html