[教程]Python函数的参数
发布日期:2021-09-06 22:32:33 浏览次数:3 分类:技术文章

本文共 1985 字,大约阅读时间需要 6 分钟。

Python函数的参数

位置参数、默认值参数、可变参数、关键字参数和命名关键字参数

1 函数结构

def 函数名(参数):    函数体    返回值

2 位置参数

3 默认值参数

4 可变参数

# 可变长度参数函数# 可变参数允许你传入0个或任意个参数,这些参数在调用时自动组装成元祖(tuple)# 1 定义求和函数def calc1(numbers):    sum = 0    # for循环遍历传递的列表或者元祖    for num in numbers:        sum = sum+num    #返回求和结果    return sum# 调用calc1函数传递列表作为参数print(calc1([1,2,3,4]))# 调用calc1函数元祖作为参数print(calc1((1,2,3,4,5)))# 调用calc1函数集合作为参数print(calc1({1,2,3,4,5,6}))#2 定义求和函数def calc2(*numbers):    sum = 0    # 接受到的参数全部自动组装成元祖    print(type(numbers))    # for循环遍历传递的列表或者元祖    for num in numbers:        sum = sum+num    #返回求和结果    return sum# 调用calc2函数传递多个参数print(calc2(1,1,1,1))# 调用calc2函数传递列表作为参数,参数前加*print(calc2(*[2,2,2,2]))# 调用calc2函数元祖作为参数,参数前加*print(calc2(*(1,2,3,4,5)))# 调用calc2函数集合作为参数,参数前加*print(calc2(*{1,2,3,4,5,6}))

5 关键字参数

# 关键词参数函数# 更多信息必须以参数名=值得形式传递进去def person(name, age, **kw):    print('name:', name, 'age:', age, 'other:', kw)person("jack", 20)person(name = "jack", age = 20)#效果同上person("jason", 19, city="beijing")# person("kiki",18,"上海") #报错 关键词参数函数必须要以 参数名=值 的形式传递参数

6 命名关键字

def person(name, age, *, city, job):    print(name, age, city, job)person("li", 22, city = "beijing",job="teacher")# person("li", 22, city = "beijing") #参数少写报错

7 参数组合

# a b   位置参数# c     默认值参数# *args 可变参数# **kw  关键字参数def f1(a, b, c=0, *args, **kw):    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)# a b   位置参数# c     默认值参数# d     命名关键字参数# **kw  关键字参数def f2(a, b, c=0, *, d, **kw):    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

8 总结

可变参数

  • 定义 def 函数名(*arg)
  • 使用 函数名(值1,值2,值3)
  • 场景 需要传递参数,但是参数个数不确定
  • 其他 可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。

关键词参数

  • 定义 def 函数名(**kw)
  • 使用 函数名(参数名1=值1, 参数名2=值2, 参数名3=值3)
  • 场景 可以扩展函数的功能,用户注册时,除了name和age用户还希望提交的其他信息都可以通过关键词参数提交
  • 其他 关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
  • 注意
    • 1 不写参数名报错
    • 2 参数传递必须以参数名=值得形式传递

命名关键词参数

  • 定义 def 函数名(*, 参数名1, 参数名2)
  • 使用 函数名(参数名1=值1, 参数名2=值2)
  • 场景 用户传递的其他信息受关键词约束
  • 注意
    • 1 不写参数名报错
    • 2 少写算错
    • 3 参数传递必须以参数名=值得形式传递

转载于:https://www.cnblogs.com/viviwong345/p/7084142.html

转载地址:https://blog.csdn.net/weixin_34273481/article/details/93309194 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux useradd userdel groupadd groupdel gpasswd(组成员管理) id groups
下一篇:EL表达式 分割字符串 ,forEach定次循环

发表评论

最新留言

很好
[***.229.124.182]2024年04月18日 05时22分30秒