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

Python函数传参(*星号)

位置参数

位置参数传递是最为简单的传递方式,按照函数参数的位置顺序逐个匹配传入,传入参数的个数必须与函数参数个数一致。

def func(a,b,c):
    print("args:",a,b,c)
    
if __name__ == "__main__":
    func(2,3,4) #输出结果 args: 2 3 4

关键字参数

通过关键字对变量进行赋值,可以对全部关键字进行赋值,也可以对部分关键字进行赋值

对全部关键字进行赋值时,位置可以随意改变

def func(a,b,c):
    print("args:",a,b,c)
if __name__ == "__main__":
    func(c=4,a=2,b=3) #输出结果 args: 2 3 4

对部分关键字进行赋值时,属于位置参数和关键字参数的混用,有关键字的部分必须放在后面

def func(a,b,c):
    print("args:",a,b,c)
if __name__ == "__main__":
    func(2,c=4,b=3) #输出结果 args: 2 3 4

此时2传给a

默认参数

此时无默认值的参数要放在有默认值参数的前面

def test(self,b,a=1):
    self.a=a
    self.b=b

、必须是这样,不然程序会报错

但是我们在调用这个函数的时候,可以颠倒顺序

test(a,b=0)

命名关键字参数

与普通关键字参数不同,命名关键字参数必须用*星号进行区分,*星号后面的参数必须通过关键字传入

def func(a,b,*,c):
    print("args:",a,b,c)
if __name__ == "__main__":
    func(2,3,c=4) #输出结果 args: 2 3 4

如果直接func(2,3,4)会报错

可变参数

如果定义的函数中带有*args或者**args都是属于可变参数方式进行参数传入

*args是以元组的方式收集不匹配的的位置参数

**args是以字典的形式收集不匹配的位置参数,仅对关键字参数传入有效

(3条消息) Python中的*args,**kwargs(可变参数)(传参)_hxxjxw的博客-CSDN博客_args kwargs

相关文章:

  • Python调用函数带括号和不带括号的区别
  • Microsoft CMT 系统
  • Python导入上层目录中的包(..) / 导入同级目录的包 (相对导入)
  • mxnet导出模型json和params文件
  • Linux(ubuntu)(0.5) —— 装系统相关
  • Python OrderedDict(collections) 有序字典 orderdict
  • .gitattributes 文件
  • 简单PageRank —— 希拉里邮件门
  • Python NetworkX
  • Python复杂网络结构可视化——matplotlib+networkx
  • FairScale
  • Pytorch学习率lr衰减(decay)(scheduler)
  • Pytorch获取中间变量的梯度grad
  • Pytorch梯度裁剪 nn.utils.clip_grad_norm_()
  • Layer Normalization(LN) 层标准化
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • mysql外键的使用
  • Otto开发初探——微服务依赖管理新利器
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • unity如何实现一个固定宽度的orthagraphic相机
  • WebSocket使用
  • yii2中session跨域名的问题
  • 高度不固定时垂直居中
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 解析带emoji和链接的聊天系统消息
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 王永庆:技术创新改变教育未来
  • 协程
  • 一份游戏开发学习路线
  • Mac 上flink的安装与启动
  • 关于Android全面屏虚拟导航栏的适配总结
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​水经微图Web1.5.0版即将上线
  • #、%和$符号在OGNL表达式中经常出现
  • #pragma multi_compile #pragma shader_feature
  • #Z2294. 打印树的直径
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • $.ajax()
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (1)(1.9) MSP (version 4.2)
  • (C语言)fread与fwrite详解
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (排序详解之 堆排序)
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (状压dp)uva 10817 Headmaster's Headache
  • *p++,*(p++),*++p,(*p)++区别?
  • .java 9 找不到符号_java找不到符号
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)