美文网首页
python函数参数

python函数参数

作者: 戈羽殇雪 | 来源:发表于2019-10-23 10:59 被阅读0次

    函数实际上使用的时候,最重要的就是传参
    简单来说有一下几种
    '''
    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函数参数

          本文链接:https://www.haomeiwen.com/subject/sitcvctx.html