• 函数调用 复习


    ---恢复内容开始---

     定义默认参数要牢记一点:默认参数必须指向不变对象!

    可变参数

    定义函数的时候 ()内可定义是可变参数 *参数

    已经有一个list或者tuple,要调用一个可变参数怎么办?Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去

    例如 

    >>> nums = [1, 2, 3]
    >>> calc(*nums)
    14 #*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见


    关键字参数

    可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。例:

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

    函数person除了必选参数nameage外,还接受关键字参数kw。在调用该函数时,可以只传入必选参数

    命名关键字参数

    和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符**后面的参数被视为命名关键字参数

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

    如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收cityjob作为关键字参数

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

    def person(name, age, *args, city, job):
        print(name, age, args, city, job)
    命名关键字参数必须传入参数名,这和位置参数不同。如果没有传入参数名,调用将报错

    参数组合
    在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
    对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。
    虽然可以组合多达5种参数,但不要同时使用太多的组合,否则函数接口的可理解性很差。

    练习

    以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积:

    def product(x,*number):
        sum1=1
        for n in number:
            sum1=sum1*n
        return x*sum1



    ---恢复内容结束---

  • 相关阅读:
    [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回
    测试Storm的多源头锚定
    理解Storm可靠性消息
    Storm处理流程, 基本参数配置
    解决Storm 和yarn 8080 端口冲突
    TridentState分析
    Trident中 FixedBatchSpout分析
    Java序列简单使用
    JVM 监控以及内存分析
    Zookeeper入门开发demo
  • 原文地址:https://www.cnblogs.com/009NotFound/p/10465656.html
Copyright © 2020-2023  润新知