1. Python函数基础与核心概念
函数是Python编程中最重要的构建模块之一,它允许我们将代码组织成可重用的逻辑单元。在Python中,函数不仅仅是一段可执行的代码,更是一种将复杂问题分解为更小、更易管理部分的方法论。
1.1 函数定义的基本结构
Python函数定义遵循特定的语法结构:
python复制def function_name(parameters):
"""可选的文档字符串(docstring)"""
# 函数体
return value # 可选
每个部分都有其特定的作用:
def:定义函数的关键字function_name:遵循变量命名规则,应使用小写字母和下划线parameters:可选的参数列表,用逗号分隔"""docstring""":描述函数用途和参数的三引号字符串return:可选,用于返回结果。若无return语句,函数返回None
提示:良好的docstring应该包含函数用途、参数说明和返回值说明,这是专业Python开发者的重要习惯。
1.2 变量作用域详解
Python中的变量作用域分为两种主要类型:
局部变量:
- 在函数内部定义
- 只能在定义它的函数内部访问
- 函数执行结束后销毁
全局变量:
- 在函数外部定义
- 可以在整个模块中访问
- 要在函数内部修改全局变量需要使用
global关键字
python复制count = 0 # 全局变量
def increment():
global count # 声明使用全局变量
count += 1
local_var = 10 # 局部变量
作用域规则遵循LEGB原则(Local → Enclosing → Global → Built-in),理解这一原则对于避免变量冲突和编写清晰代码至关重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Python函数参数深度解析
Python函数的参数系统非常灵活,理解各种参数类型的区别和使用场景是掌握Python函数的关键。
2.1 位置参数与默认参数
位置参数是最基本的参数类型,调用时必须按顺序提供:
python复制def greet(name, greeting):
print(f"{greeting}, {name}!")
greet("Alice", "Hello") # 正确
greet("Hello", "Alice") # 逻辑错误
默认参数允许我们为参数指定默认值:
python复制def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Bob") # 使用默认greeting
greet("Bob", "Hi") # 覆盖默认值
注意:默认参数在函数定义时求值一次,因此避免使用可变对象(如列表、字典)作为默认值,除非明确需要这种行为。
2.2 不定参数:*args和**kwargs
Python提供了两种特殊语法来处理可变数量的参数:
*args:收集所有位置参数到一个元组
python复制def sum_numbers(*args):
return sum(args)
sum_numbers(1, 2, 3) # 返回6
**kwargs:收集所有关键字参数到一个字典
python复制def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30)
在实际开发中,*args和**kwargs常用于:
- 编写装饰器
- 继承时传递参数
- 创建灵活的API接口
