python 函数的参数梳理

时间:2021-10-07
本文章向大家介绍python 函数的参数梳理,主要包括python 函数的参数梳理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.位置参数

def  func(x,y)

2.默认参数

def func(x,y=None)

y 在未传参的情况下 默认使用“None”,默认参数 需放在后面.

3.可变参数

def func(x,*args)

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple.

def func(x,*args):
    #所有参数
    print(x,*args)
    print("可变参数类型:{}".format(type(args)))
    for n in args:
        print(n)

if __name__=="__main__":
    func(123,55,5)
    func(123)
运行结果:
123 55 5
可变参数类型:<class 'tuple'>
55
5
123
可变参数类型:<class 'tuple'>

4.关键字参数

def func(x,**kwargs)

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict.

def func2(x,**kwargs):
    # 所有参数
    print(x,kwargs)
    #打印出所有关键字参数
    for k in kwargs:
        print("{}={}".format(k,kwargs[k]))
    #关键字的key
    print(*kwargs)
运行结果:
2 {'key1': 'value1', 'key2': 'value2'}
key1=value1
key2=value2
key1 key2
----------
2 {'city': 'Beijing', 'job': 'Engineer'}
city=Beijing
job=Engineer
city job

  

5.命名关键字参数

def func(*,arg1,arg2)

命名关键字参数 类似于位置参数,指定的参数 必须填写且需使用上参数名,否则报错

def func3(*,arg1,arg2):
    print(arg1,arg2)

if __name__=="__main__":

    func3(arg1='s',arg3='ss')


参数名错误 报错:
    func3(arg1='s',arg3='ss')
TypeError: func3() got an unexpected keyword argument 'arg3' 
def func3(*,arg1,arg2):
    print(arg1,arg2)

if __name__=="__main__":

    func3(4,5)

不带参数名报错:

    func3(4,5)
TypeError: func3() takes 0 positional arguments but 2 were given

  注:

  1. 在Python中定义函数,可以用位置参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用;但是参数定义的顺序必须是:位置参数、默认参数、可变参数、命名关键字参数和关键字参数。
  2. 虽然可以组合多达5种参数,但不要同时使用太多的组合,否则函数接口的可理解性很差。

原文地址:https://www.cnblogs.com/l0923/p/15377312.html