• 函数调用 复习


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

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

    可变参数

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

    已经有一个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



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

  • 相关阅读:
    ucos信号量
    uC/OSII 常用函数参考手册
    GPS NMEA0183协议详解
    为sql server 表数据生成创建的储存过程(生成insert 脚本)
    安装SQL2008,提示删除SQL2005Express工具的解决方法
    intel hex 文件格式解密
    C语言:I/O
    C语言基础
    摆脱IDE进行时. . .
    对WinForm的App.config文件进行加密
  • 原文地址:https://www.cnblogs.com/009NotFound/p/10465656.html
Copyright © 2020-2023  润新知