⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Python 函数参数详解

学习函数参数类型 · 难度:进阶 · +15XP

Python 函数参数详解

Python 函数参数详解 — 灵活传递数据

学习前的准备

打开终端,输入 python 进入交互式解释器。本教程面向已经掌握基本函数定义的初学者。

位置参数

位置参数是最常见的参数类型。调用函数时,参数按照定义时的顺序一一对应。

def greet(first_name, last_name):
    print(f"你好,{last_name} {first_name}!")
greet("三", "张")  # 你好,张 三!

默认参数

给参数设置默认值后,调用时可以不传该参数。默认参数必须放在所有非默认参数的后面。

def create_user(name, role="普通用户", active=True):
    print(f"用户:{name},角色:{role},{'激活' if active else '未激活'}")
create_user("张三")                      # 使用所有默认值
create_user("李四", "管理员")            # 覆盖默认角色
create_user("王五", active=False)       # 关键字方式覆盖

# 警告:默认值不要用可变对象 def add_item(item, lst=None): if lst is None: lst = [] lst.append(item) return lst

关键字参数

调用函数时,可以使用 参数名=值 的形式传递参数。顺序不重要,代码可读性更高。

def book_info(title, author, year=2020):
    print(f"《{title}》作者:{author},{year}年出版")
book_info(author="路遥", title="平凡的世界", year=1986)

参数传递的本质

对于不可变对象(数字、字符串、元组),函数内的修改不影响外部。对于可变对象(列表、字典),函数内的修改会影响外部。

# 不可变对象:不影响外部
def change_num(n):
    n = 100
x = 10
change_num(x)
print(x)  # 10(未改变)

# 可变对象:会影响外部 def append_item(lst): lst.append(4) my_list = [1, 2, 3] append_item(my_list) print(my_list) # [1, 2, 3, 4](被改变了!)

小结

掌握函数参数是写出好用函数的关键。位置参数按顺序传,默认参数可省略,关键字参数打乱顺序。记住:可变对象作为参数时,函数内的修改会“泄露”到外部。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 152 篇
0 完成
🔥 0