博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 参数
阅读量:6368 次
发布时间:2019-06-23

本文共 1556 字,大约阅读时间需要 5 分钟。

参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000

首先要才分清楚,如果你想传入字典参数,那么正常写就好,因为字典也是python的数据类型,比如想用**kw来传入字典参数,这是什么鬼操作?(是因为kw就是关键字的意思吗?)

可变参数

  可变参数的意思函数接受的参数的个数可以改变,可以是0个,也可以是2个,即能接受任意个数的参数

  如果我们什么也不做,那么要想函数接受可变参数只有让传入的参数是一个列表或元组类型的,然后在函数内部再去遍历他。

#分别传入列表类型的和元组类型的作为参数传入parameter1=[1,2,3]parameter2=[1,2,3,5]#元组类型parameter3=(1,2,3)parameter4=(1,2,3,4)def test(a):    sum=0    for s in a:        sum=sum+s*s    print(sum)test(parameter1)test(parameter2)test(parameter3)test(parameter4)#结果:(sort) λ python forTest.py039030

 

  这样不方便的地方每次都必须把参数组装成一个元组或者列表的类型才能传进去,这样十分的不方便。

test([1,2,3,5])#把参数组装成列表test((1,2,3,5))#组装成元组

  使用可变参数之后,调用的方式可以简化为这样

test()#传入0个参数test(1,2,3,5)

  这需要把函数的参数改为可变参数,只需要加上一个*号,在定义函数的时候

def test(*a):#注意还是要有a的#结果(sort) λ python forTest.py05

  加上一个*好后,在函数内部,参数numbers接收到的是一个tuple(可以理解为:函数内部把接受到的参数组装成一个元组或一个列表?)

  如果已经有了一个类型为元组或者列表类型的参数,怎么传入一个参数为可变参数的函数中呢?

  一种笨的:

test(parameter2[0],parameter2[1])(sort) λ python forTest.py5

  另外一种:

test(*parameter2)(sort) λ python forTest.py39

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

如果需要对传入的参数做不同的操作怎么办呢,比如一个参数是名字,一个参数是年龄,想要让他们两个随机组合的参数该怎么设定呢? 

 

 

键字参数**kw

 

关键字参数只是kw接受了一个字典而已,他跟你要传入的参数是个字典并没有关系

1)在函数中使用

  首先要在定义函数的时候这样写

def functionName(positionArg,**kw):    s=kw['name_a']#获取关键字参数中键名为a的

  使用函数的时候传入参数的时候

test('1',a='23',b='234')#不能下面这样写,否则后提示有一个位置参数却给了两个dics={'a':'23','b':'234'}test('1',dics)

  在函数中取值

def test(arg,**kw):    s=kw['b']#没有b的时候会出错

  

  

转载于:https://www.cnblogs.com/Gaoqiking/p/10738271.html

你可能感兴趣的文章
黑客真实生活复现 | 十部超赞黑客电影,周末肥宅生活必备!
查看>>
玩转 iOS 开发:NSURLSession 讲解 (一)
查看>>
我的iOS开发内容相关总结
查看>>
Event Loop的规范和实现
查看>>
『React Navigation 3x系列教程』之createStackNavigator开发指南
查看>>
头条系多闪:IM 战线上的另一块战场
查看>>
原生JS操作DOM
查看>>
手写实现一个 HashMap 实战
查看>>
Redis入门第九篇【主从复制】
查看>>
圣杯布局学习总结
查看>>
用 Go 语言理解 Tensorflow
查看>>
MSSQL注射知识库 v 1.0
查看>>
从零学React Native之08Image组件
查看>>
ReactiveCocoa 中奇妙无比的“宏”魔法
查看>>
【小程序踩坑系列2】 vConsole 将已清除掉的log记录再次打印出来,造成代码没有生效或者微信扫码错误的错觉...
查看>>
RxJava2系列实践之倒计时功能(三)
查看>>
设计模式(12)-适配器模式详解(易懂)
查看>>
Python爬虫实战(2)-爬取小说"斗罗大陆3龙王传说”(超详细)
查看>>
Flutter组件学习(四)—— 布局组件Row和Column
查看>>
Runtime在实际开发中的应用
查看>>