zoukankan      html  css  js  c++  java
  • Day5

    现在我们学完了位置参数、默认参数、可变参数、关键字参数、命名关键字参数五种参数类型。
    在Python中定义函数,可以使用这五种参数进行组合。
    但是参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
                def f1(a, b, c=0, *pp, **kw):
                    print(a,b,c,pp,kw)
                dd = [9,10,12,14,15,17,19,20]
                dk = {'q':99, 'p':88}
                f1(*dd,**dk)
                9 10 12 (14, 15, 17, 19, 20) {'q': 99, 'p': 88}
                def f2(a,b,c=0,*,job,hh):
                    print(a,b,c,job,hh)
                dw = (1,2,3)
                ww ={'job':'jj','hh':'HH'}
                f2(*dw,**ww)
                1 2 3 jj HH
    可以通过一个tuple和dict来调用函数。
                def f3(a,b,c,*pp,host,words,**kw):
                    print(a,b,c,pp,host,words,kw)
                pp1 = (1,2,3,4,5,6,7,8,9,0)
                pp2 = {'host':'HH', 'words':'WW'}
                pp3 = {'oo':'oooo', 'ppp':'pppppp'}
                pp4 = {'host':'HH', 'words':'WW', 'oo':'oooo', 'ppp':'pppppp'}
                f3(*pp1,**pp2,**pp3)
                f3(*pp1,**pp4)
                1 2 3 (4, 5, 6, 7, 8, 9, 0) HH WW {'oo': 'oooo', 'ppp': 'pppppp'}
                1 2 3 (4, 5, 6, 7, 8, 9, 0) HH WW {'oo': 'oooo', 'ppp': 'pppppp'}
    实际上,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数时如何定义的。
    虽然可以组合多达5中参数与, 但不要同时使用太多的组合,否则函数接口的可读性和可理解性都会非常差。

    练习:
    以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积:
    def product(x, y):
        return x * y
    -------------------------------------
    def pro(*x,y=1):
         s = 1
         for i in x:
                 s = i * s
         print( s*y )
  • 相关阅读:
    导入已有项目到svn
    Linux用ICMP协议实现简单Ping网络监测功能
    c++ tcp 服务器和客户端例子
    C++ Socket 编程
    c++工厂模式和多线程结合
    Linux中ls命令详解
    Mac OS X 11中的/usr/bin 的“Operation not permitted”
    Warning: mysql_connect(): No such file or directory 解决方案总结(操作系统: Mac)
    页面组件渲染小组件(重点)
    Vue 路由
  • 原文地址:https://www.cnblogs.com/konggg/p/8989175.html
Copyright © 2011-2022 走看看