python关键字参数和默认参数,python 位置参数,默认参数

  python关键字参数和默认参数,python 位置参数,默认参数

  python参数type _技术博客of _mb62abf3afb54fb _博客的位置参数、默认参数、动态参数、关键字参数

  Python参数列表1。位置参数:调用函数时传递的参数,默认按顺序赋值;但是,在调用函数时,如果指定给参数赋值,就不注意顺序了。

  2.默认参数:定义函数时,设置参数的默认值。

  3.动态参数:*args调用可以传入或不传入任何参数的函数。在函数内部传递它们会将这些函数保存到一个元组中。

  4.关键字参数:**kwargs参数传入后成为字典类型。

  1.必需参数(也称为位置参数)def add(a,b):

  返回a b

  sum=add(1,2)

  打印(总和)

  #输出结果

  3 3 add函数有两个参数,第一个参数是A,第二个参数是B,传入的两个整数按照位置顺序赋给函数的参数A和B。参数A和B称为位置参数。传递的参数数量必须等于参数列表的数量。要求传递的参数与函数定义的参数一一对应。如果传递的参数数量不等于函数定义的参数数量,运行时将报告error # error示例。

  def add(a,b):

  返回a b

  sum=add(1,2,3)

  #输出结果

  sum=add(1,2,3)

  e类型错误:add()接受2个位置参数,但给定了3个II。默认参数使用默认参数,可以简化函数的调用,尤其是需要频繁调用函数的时候:

  #必需参数a,默认参数b

  定义测试1(a,b=3):

  打印(a,b)

  测试1(0)

  Test1(0,1)运行结果:

  0 3

  0声明函数时,当既有必选参数又有缺省参数时,参数的顺序必须是(必选参数和缺省参数),即缺省参数不能在前面,缺省参数必须在位置参数后面。

  3.可变参数【也叫动态参数】为什么需要可变参数?假设你需要一个有两个数的和函数。

  def add(a,b):

  返回a b

  Add(1,2)在这种情况下,有一个包含3个数的求和函数。

  def add3(a,b,c):

  返回一个

  Add3(1,2,3)问题来了:

  然后,如果你还需要一个4数求和函数,可以用上面的方法再加一个函数,但是显然比较麻烦。于是,可变参数诞生了,希望只写一个函数ADD来计算求和,但是函数的参数个数是不确定的,所以可以重用可变参数def函数的表达式(*args):

  Body该函数被设置为接受可变数量的参数。参数的类型是元组。当这个函数被调用时,所有的参数被合并成一个元组,合并后的元组被赋给args。您可以通过遍历args来访问传递的参数。示例1:

  #累积可变参数函数

  def add(*args):

  打印(参数)

  总和=0

  对于args中的arg:

  总和=参数

  print(len=%d,sum=%d % (len(args),sum))

  添加(1)

  加法(1,2)

  加法(1,2,3)

  #输出结果

  (1,)

  len=1,sum=1

  (1, 2)

  len=2,sum=3

  (1, 2, 3)

  对于示例2,Len=3,sum=6:

  def test2(num,num2=2,*args):

  打印(num,num2,args)

  测试2(1)

  测试2(1,3)

  测试2(1,3,3,3,3,3,3)

  test2(1,*(2,3,4,5))

  测试(1,* [2,3,4,5])运行结果:

  1 2 ()

  1 3 ()

  1 3 (3, 3, 3, 3, 3)

  1 2 (3, 4, 5)

  1 (3,4,5)知识点args是元组类型的可变参数。也可以传递很多值*(2,3,4,5)。在元组或列表前面加一个*表示其中的每个元素都是分开的,单独作为参数传入,也叫元组解包。(详见python拆包)【注意】:调用函数时,不能指定变量参数前的参数名;而且不管函数什么时候声明,什么时候调用,必选参数都必须在变量参数之前。例如:

  #可变参数

  def myfun(a,*b):

  打印(一份)

  打印(b)

  myfun(a=1,2,3,4)

  #输出结果

  myfun(a=1,2,3,4)

  ^

  语法错误:位置实参跟在关键字实参后面【注意】:调用函数时,变量实参(*)后面的实参必须指定实参名称【即关键字传递】,否则将被归类为变量实参。

  1,例如:

  #可变参数

  def myfun(a,*b,c=无):

  打印(一份)

  打印(b)

  打印(c)

  myfun(1,2,3,4)

  #输出结果

  一个

  (2, 3, 4)

  Nonec输出None,即不获取参数值。

  例如,关键字传递:

  #可变参数

  def myfun(a,*b,c=无):

  打印(一份)

  打印(b)

  打印(c)

  myfun(1,2,3,c=4)

  #输出结果

  一个

  (2, 3)

  4关键字参数什么是关键字参数?Python允许调用函数时,参数以“参数名=参数值”的形式传递。

  def add(a,b):

  返回a b

  add(a=1,b=2)参数名=参数值形式的参数,如a=1,b=2,称为关键字参数。

  包含关键字参数的函数的语法格式以符号* *开头,表示该函数可以接收关键字参数。

  定义函数(* *夸脱):

  Body这个函数被设置成能够接收关键字类型的参数kwargs。当调用这个函数时,所有的关键字参数都被合并到一个字典中,合并后的字典被赋给kwargs。通过访问kwargs,可以访问参数名和值。示例1:

  #关键字参数函数示例

  def create_full_name(**kwargs):

  #印刷是一本字典。

  印刷品(夸脱)

  name=kwargs.get(name )

  password=kwargs.get(password )

  如果名称和密码:

  打印(姓名是:,姓名,密码是:,密码)

  如果是名称而不是密码:

  打印(唯一名称是:,名称)

  #方法1:通过key=value传递参数。

  Create_full_name(name=小菠萝,password=123456 )

  dict_={name: yy}

  #方法二:传字典,然后加* *解包。

  创建全名(* *字典_)

  #输出结果

  { 姓名:小菠萝,密码: 123456}

  是:小菠萝,密码是:123456

  { 姓名: yy}

  唯一的名字是:yy例2:

  def test3(a,b=2,**kwargs):

  印刷(a、b、kwargs)

  测试3(1)

  测试3(1,3)

  test3(1,* * * { key : value })

  test3(1,3,* * * { key : value , key1: val , key2: val2})

  test3(1,name=yy ,key=value )

  test3(1,3,name=yy ,key=value )

  test3(1,name=yy ,key=value ,b=222222)

  # test3 (1,22222,name= yy ,key= value ,b=22222)会报告一个错误,因为第二个值已经传递给默认参数b了,运行结果:

  1 2 {}

  1 3 {}

  1 ^ 2 { key : value }

  ^ 1 ^ 3 { key : value , key1: val , key2: val2}

  ^ 1 ^ 2 { 姓名: yy ,键:值 }

  1 3 { 姓名: yy ,键:值 }

  1 222222 {name: yy , key: value}知识点kwargs是字典类型。能不能传递key参数就需要传递key值对。如果你想通过dict,你需要在前面加上* *。这个dict的所有key-value都作为独立的key参数传递到kwargs中(改为key=value),而修改kwargs不会影响原来的dict。也可以不用dict直接写key=value。如果它与默认参数同名,如果没有以前的值,它将作为默认参数传递。如果是,直接报错(声明函数时不允许参数重复)。声明函数时,默认参数不能放在关键字参数之后,即默认参数必须是关键字参数之前的**dict,这也叫字典解包。示例1python的请求库关键字函数(如果python函数的参数是关键字参数,则该函数可以称为关键字函数)

  除了方法和url是必需的参数之外,许多参数都可以通过kwargs传递。

  2例如,函数def test4(a,b=2,*args,**kwargs)有四种参数类型:

  打印(a,b,args,kwargs)

  测试4(1)

  测试4(1,1)

  test4(1,*(1,2,3,3,4,))

  test4(1,*(1,2,3,3,4,)cc=123,c=123)

  lists=[a , b]

  dicts={key: 123}

  Test4(1,*列表,*字典)运行结果:

  1 2 () {}

  1 1 () {}

  1 1 (2, 3, 3, 4) {}

  1 1 (2,3,3,4) {cc: 123, c: 123}

  1 a (b ,){key: 123}

  期待陌生,拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: