python函数参数

函数实际上使用的时候,最重要的就是传参
简单来说有一下几种
'''
def func1(x,y):
print(x)
print(y)
func1(x=1,y=2)
'''
将定义的形参的值,指定写入到相应的参数中
结果显示为
1
2
同样的将func1(y=2,x=1),这样传入参数实际并不会影响实际的显示结果
结果仍为
1
2
因为传入参数是按照形参名传入的
若不通过指定参数名进行传参,使用位置参数的方式进行传参
func1(1,2)
func1(2,1)
位置的不同,传入的参数不同,因此实际结果也不同

func1(1,2,3)这样会报错,因为定义的指定参数为2个,你传入了3个值,所以报错,如何解决这种问题,引入冗余参数
‘’‘
def func2(x,*args):
print(x)
print(y)
func2(3,4,5,6)
’‘’
output:
1
(2, 3, 4, 56)
输出结果为1,后面的为元组,指定了一个默认参数,其他的参数都作为冗余参数,然后将其他的参数转化为一个元组

若想把关键字都转化为字典,需要使用kwargs
’‘’
def func3(x,
args,
*kwargs):
print(x)
print(args)
print(kwargs)
func3(1,2,3,4,5,name='alex,age='8')
'''
输出
1
(2,3,4,5)
{name:'alex',age:'8'}

同时在函数中,我们很多时候会用默认参数,即在定义的时候就指定了参数的值,但这个值是可以改变的,调用时再重新赋值即可
例如:
'''
def func4(name,age=18)
print(name)
print(age)
func4('alex',age=34)
'''
同时可以不改变默认参数值,直接func4('alex')

原则:

若两种定义形式都存在,默认会按照位置参数的规则进行定义

这样可以不用按照形参定义顺序进行赋值,使用了关键字调用,关键字调用不能写在位置参数前面

args:只能接收N个位置参数,转换成元组;*kwargs,接收N个关键字参数,转换成字典,位置参数不能添加到关键字参数后面

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要学习内容: python函数参数类型 python 的函数参数类型分为4种:1.位置参数:调用函数时根据函...
    格子衫程序员阅读 878评论 0 0
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,938评论 0 8
  •   Python函数定义时参数灵活,使用不同参数的组合不仅可以简化调用者的代码,还可以处理复杂的参数。函数的参数除...
    liangruifeng阅读 561评论 0 2
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 359评论 0 0
  • 本章将介绍函数中参数的用法,更多内容请参考:Python学习指南 定义函数的时候,我们把参数的名字和位置确定下来,...
    小七奇奇阅读 201评论 0 2