Python基础快速复习——函数的多种传参方式

一、位置参数

调用函数时根据函数定义的参数位置传递参数,传递的参数和定义的参数的顺序必须一致。

示例:
复制代码
def info(name, age): 
    print(f"姓名:{name},年龄:{age}") 
    
# 按顺序传参 info("张三", 20)

特点:

  • 实参和形参数量、顺序必须一致

  • 最简单、最常用

二、关键字参数

函数调用时通过"健=值"形式传递参数。

作用: 可以让函数更加清晰、容易使用,同时也清除了函数的顺序要求。

注意: 函数如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

示例:

复制代码
def info(name, age): 
    print(f"姓名:{name},年龄:{age}") 
    
# 关键字传参,顺序无关 
info(age=20, name="张三")

特点

  • 不用记顺序
  • 可读性极高
  • 可以和位置参数混用,但位置参数必须在前

三、缺省参数(默认参数)

缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值,所有位置参数必须出现在默认参数前,包括函数定义和调用。

作用: 当调用函数时没有传递参数,就会使用默认时缺省函数对应的值。

示例:

复制代码
def info(name, age=18): # age 默认 18 
    print(f"姓名:{name},年龄:{age}") 
    
info("张三") # 用默认值 → 18 
info("李四", 25) # 覆盖默认值 → 25

注意

  • 默认值可以为多个参数设置
  • 默认参数必须放在非默认参数后面
  • 默认值只在函数定义时计算一次(不要用可变对象做默认值)
  • 当调用时,如果缺省函数传值则修改默认参数值,否则使用这个默认值。

四、不定长参数(可变位置参数)

用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。

作用: 当当调用函数时不确定参数的个数时,可以使用不定长参数。

不定长参数的类型:

  • 位置传递:

    def user_info (*args):
    print(args)

传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组,args是元组类型,这就是位置传递

  • 关键字传递

    def user_info(**kwargs):
    print(kwargs)

参数是"键=值"形式的情况下,所有的"键=值"都会被kwargs接受,同时根据"键=值"组成字典。

五、总结

传参方式 写法 接收形式 特点
位置参数 func(1,2) 顺序对应 最基础
关键字参数 func(a=1,b=2) 键值对 顺序无关
默认参数 def func(a=10) 带默认值 可传可不传
可变位置 *args 元组 任意多个位置参数
可变关键字 **kwargs 字典 任意多个关键字参数
相关推荐
l1258653 分钟前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计
数据库·python·mysql·langchain
meilindehuzi_a1 小时前
Python 基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
Zane19941 小时前
调用了 async 函数却没执行?一文讲透协程、event loop 与 await
后端·python
OPEN-F1 小时前
Python进阶教程:装饰器与生成器深入
开发语言·python
zhipujiaoyu1 小时前
2026年大数据专科何去何从?就业前景、发展趋势全揭秘!
大数据·python
l1258652 小时前
# RAG噪声知识库治理:一致性与可信度的四层防线设计
数据库·人工智能·python·自然语言处理·langchain
zoujiahui_20182 小时前
别再只写 np.random.seed() 了:default_rng 与 np.random、random 到底差在哪?
python
Patrick在香港2 小时前
Claude Agent 进阶:4 种工具调用编排模式,让 0820 那 13 个 endpoint 并行起来
python·ai·ai编程
qq_513728042 小时前
StaleElementReferenceException(陈旧元素引用异常)
python
千里码aicood3 小时前
基于Python的电商数据采集系统(大数据+爬虫)
开发语言·python