• 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 )
  • 相关阅读:
    浅谈Vue基础知识(二)
    浅谈Vue基础知识(一)
    ES 6
    网易DBA私享会分享会笔记2
    网易DBA私享会分享会笔记1
    centos6.5适用的国内yum源:网易、搜狐
    如何去除 ckeditor 上传图片后在原码中留下的 style="width: 100%;height:100px"之类的代码呢?
    关于json.ajax ,php的那点事
    去掉所有的html标签
    [CentOS 0010] CentOS 配置mysql允许远程登录
  • 原文地址:https://www.cnblogs.com/konggg/p/8989175.html
Copyright © 2020-2023  润新知