3、python的传入参数


转载:https://blog.csdn.net/abc_12366/article/details/79627263

1、位置参数:

def func(a, b):

  print(a+b)

func(1, 2) #3

2、默认参数,默认参数就是在调用函数的时候使用一些包含默认值的参数

def jia(a,b=6):
  print(a+b)

jia(4)##10

3、可变参数,就是允许在调用参数的时候传入多个(≥0个)参数(类似于列表、字典)

#传入一个列表,严格地说这不是可变参数

def calc(l):

  sum = 0

  for n in l:

    sum += n

  return sum

 calc([1,2,3]) ##7

#这才是可变参数,虽然在使用上和列表没有区别,但是参数nums接收到的是一个tuple(这些参数在传入时被自动组组装为一个元祖)

def calc(*nums):

  sum = 0

  for n in nums:

    sum += n

  return sum

calc([1,2,3]) ##7

4、关键字参数

可变参数允许传入0个~多个参数,而关键字参数允许在调用时以字典形式传入0个或多个参数(注意区别,一个是字典一个是列表);在传递参数时用等号(=)连接键和值

#用两个星号表示关键字参数 def person_info(name, age, **kw): print("name", name, "age", age, "other", kw) >>> person_info("Xiaoming", 12) name Xiaoming age 12 other{} >>> person_info("Dahuang", 35, city = "Beijing") name Dahuang age 35 other {'city':'Beijing'}

参数组合总结

总结一下,在Python中一种可以使用5中传递参数的方式(位置参数、默认参数、变长参数、关键字参数、命名关键字参数)

注意,这些参数在书写时要遵循一定的顺序即:位置参数、默认参数、变长参数、关键字参数、命名关键字参数(和本文的行文顺序一致)

这里简单举两个栗子

def f1(a, b, c=0, *args, **kw): print("a = ", a, "b = ", b, "args = ", args, "kw = ",kw) def f2(a, b, c=0, *, d, **kw): print("a = ", a, "b = ", b, "c = ", c, "d = ", d, "kw = ", kw) >>> f1(1, 2) a = 1 b = 2 c = 0 args =() kw = {} >>> f1(1, 2, c=3) a = 1 b = 2 c = 3 args = () kw = {} >>> f1(1, 2, 3, 'a', 'b') a = 1 b = 2 c = 3 args = ('a', 'b') kw = {} >>> f1(1, 2, 3, 'a', 'b', x = 99) a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x':99} >>> f2(1, 2, d = 99, ext = None) a = 1 b =2 c = 0 d = 99 kw = {'ext':None}
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM