Python中函数的参数

逃离我推掉我的手 2022-05-31 10:36 292阅读 0赞

简单记录一下


位置参数

  1. def add(a, b):
  2. return a + b

这里a,b就是位置参数,调用时传入的两个值按顺序赋给参数a,b

可变参数

参数前面添加*号,函数内部接收的是一个tuple,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple;

  1. def cal(*args):
  2. for n in args:
  3. print(n)
  4. L = [1, 2, 3]
  5. T = (1, 2, 3)
  6. cal(*L)
  7. cal(*T)

关键字参数

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

  1. def person(name, age, **kw):
  2. print('name:', name, 'age:', age, 'other:', kw)

命名关键字参数

对于定义了关键字参数的函数,函数的调用者可以传入任意不受限制的关键字参数,如果要限制关键字参数的名字,就可以用命名关键字参数,和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符:*号,*号后面的参数被视为命名关键字参数。

  1. def person(name, age, *, city, job):
  2. print(name, age, city, job)

如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*号了:

  1. def person(name, age, *args, city, job):
  2. print(name, age, args, city, job)

与普通的位置参数不同,命名关键字参数必须传入参数名。如果没有传入参数名,调用将会报错

  1. person('test', 26, 'SH', 'CTO')

TypeError: person() takes 2 positional arguments but 4 were given

默认参数

默认参数必须指向不变对象

  1. def default_parameter(L=None):
  2. if L is None:
  3. L = []
  4. L.append('END')
  5. return L
  6. print(default_parameter())
  7. print(default_parameter())

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python 函数参数

    使用位置参数 有时候,方法接收的参数数目可能不一定,比如定义一个求和的方法,至少要接收两个参数: def sum(a, b): return a

    相关 python函数参数

    Python的函数定义中除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数 1、必选参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用函数是必