当前位置: 首页 > news >正文

python:方法参数的各种形式

# 0、位置参数(正常传参)# 一、参数可以设置默认值# 二、关键字参数:传参时需要指定 形参名=值# 关键字参数必须放在位置参数后面,如果一个参数是关键字参数,那么它后面的参数就都是关键字参数# 三、可变参数:分两种:# 1、*参数名,在定义它的函数中以元组的形式接收实参值# 2、**参数名,在定义他的函数中以字典的形式接收实参值# 可变参数必须在形参列表的最末尾,而且‘**参数’必须在‘*参数’的后面# 四、解包传参# 五、强制使用位置传参或关键字传参# / : 前面的参数必须使用位置参数# * : 后面的参数必须使用关键字参数# 一、参数可以设置默认值,设置默认值的参数必须放在最后,如果不传参就用默认值print("++++++参数设置默认值++++++")defmethod1(x,y,z='使用默认z坐标'):print(f"x->{x}, y->{y}, z->{z}")# 方法内->运行结果:x->X, y->Y, z->使用默认z坐标method1("X",'Y')# 二、关键字参数:传参时需要指定 形参名=值# 关键字参数必须放在位置参数后面,如果一个参数是关键字参数,那么它后面的参数就都是关键字参数print("++++++关键字参数++++++")defmethod2(x,y,z):print(f"x->{x}, y->{y}, z->{z}")# 方法内->运行结果:x->X, y->Y, z->Zmethod2(y='Y',z='Z',x='X')# 三、可变参数 可变参数必须在形参列表的最末尾,而且‘**参数’必须在‘*参数’的后面print("++++++可变参数++++++")# 1、*参数名,在定义它的函数中以元组的形式接收实参值defmethod3(flag,*args):sum=0ifflag:foriteminargs:sum+=itemprint(f"可变参数累加和为:{sum}")else:print(f"输入的可变参数有:{len(args)}个")method3(True,1,2,3)# 可变参数累加和为:6# 2、**参数名,在定义他的函数中以字典的形式接收实参值defmethod4(nums,**kwargs):print(f"输入的nums为:{nums}")forkey,valueinkwargs.items():print(f"key:value ->{key}:{value}")method4(100,name="张三",age=18,sex='1')# 结果:# key:value -> name:张三# key:value -> age:18# key:value -> sex:1# 四、解包传参print("++++++解包传参++++++")defmethod5(type,name,age,sex):print(f"{type}解包传参:{name=},{age=},{sex=}")#列表解包传参method5("列表",*['李四',18,'0'])#字典解包传参(key值和方法形参对应上)method5("字典",**{"name":"王五","age":20,"sex":"1"})# 结果:# 列表解包传参:name='李四',age=18,sex='0'# 字典解包传参:name='王五',age=20,sex='1'# 五、强制使用位置传参或关键字传参# / : 前面的参数必须使用位置参数# * : 后面的参数必须使用关键字参数print("++++++强制使用位置传参或关键字传参++++++")defmethod6(param1,param2,/,param3,param4,*,param5,param6):print(f"位置参数:{param1}{param2}-> 中间参数:{param3}{param4}-> 关键字参数:{param5}{param6}")method6("位置参数1","位置参数2","位置参数3",param4="关键字参数4",param6="关键字参数6",param5="关键字参数5",)# 结果:位置参数:位置参数1、位置参数2 -> 中间参数:位置参数3、关键字参数4 -> 关键字参数:关键字参数5、关键字参数6

结果:

++++++参数设置默认值++++++
x->X, y->Y, z->使用默认z坐标
++++++关键字参数++++++
x->X, y->Y, z->Z
++++++可变参数++++++
可变参数累加和为:6
输入的nums为:100
key:value -> name:张三
key:value -> age:18
key:value -> sex:1
++++++解包传参++++++
列表解包传参:name=‘李四’,age=18,sex=‘0’
字典解包传参:name=‘王五’,age=20,sex=‘1’
++++++强制使用位置传参或关键字传参++++++
位置参数:位置参数1、位置参数2 -> 中间参数:位置参数3、关键字参数4 -> 关键字参数:关键字参数5、关键字参数6

http://www.jsqmd.com/news/1228540/

相关文章:

  • panda-gym社区贡献指南:如何参与开源机器人强化学习项目开发
  • OptiMode应用矢量有限元法模拟表面等离子体激元
  • Streamlit与Gradio:轻量级AI应用开发框架对比
  • 为什么选择Combustion?Rails引擎测试效率提升10倍的秘密
  • 告别凌乱桌面!作为独立开发者,我把桌面整理与硬件监控做成了艺术品
  • 终极RPCS3配置指南:从零开始打造完美PS3模拟体验
  • Streamlit快速构建Python网页应用实战指南
  • 机器学习生产化实战:特征服务与模型服务双层架构
  • deepseek本地部署(在线、离线)、知识库搭建(个人、组织)与代码接入
  • Python实现MD5弱密码批量检测:从字典攻击原理到安全自检实践
  • 如何快速掌握Stacer:新手必备的Linux系统优化指南
  • 3分钟上手163MusicLyrics:完全免费的歌词获取神器,一站式解决音乐歌词下载难题
  • 多维聚合的本质:从GROUP BY到OLAP立方体的思维跃迁
  • Windows蓝牙音频连接终极指南:AudioPlaybackConnector完整使用教程
  • 现代C++ JSON处理困局:如何用nlohmann/json征服跨平台桌面开发?
  • 老Mac重生指南:3步解锁旧设备潜能,OpenCore Legacy Patcher终极方案
  • Applist Detector:深度解析Android设备安全检测架构设计与实现
  • 量子计算与AI轻量化技术突破解析
  • FlappyBird与强化学习:基于DJL的AI训练系统集成指南
  • 如何彻底解决Pixelle-Video TTS语音合成失败问题:从诊断到修复的完整指南
  • 酒店餐厅管理系统
  • 【2026年】伺服减速机背隙是什么意思?
  • 数字符号7/23的文化传播与社会影响分析
  • Qwen3.6-35B-A3B-Uncensored-Genesis-Hermes-V3多模态功能实战:从文本到SVG图像生成
  • OptiScaler完整指南:如何免费提升游戏性能与画质的终极解决方案
  • 游戏冷门单字ID生成技巧与命名策略
  • Python-基础-列表
  • 【爱马仕智能体】Hermes Agent Windows 轻量化部署教程,整合包简化环境搭建流程(含安装包)
  • AM263P eQEP与FSI模块深度解析:构建高可靠运动控制系统的核心
  • PKUAutoElective项目维护指南:如何fork并自定义你的选课工具