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 字典 任意多个关键字参数
相关推荐
老白干1 小时前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
笨鸟先飞,勤能补拙8 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能8 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂9 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study9 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境10 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境10 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd12310 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy123931021611 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb0011 小时前
一个项目带你入门AI应用开发01
python