快捷搜索:

您的位置:bv1946韦德娱乐 > 韦德国际1946官网 > 函数说明,python函数的参数

函数说明,python函数的参数

发布时间:2019-05-02 22:51编辑:韦德国际1946官网浏览(92)

    布置参数

    • 三脚架类型:快装板
    • 云台:3/8寸螺丝
    • 外形设计:黑色

    查阅完整参数>>

    11

    一)关键字参数回看
    对此重要字参数,函数的调用者能够流传放4不受限制的第2字参数。至于到底传入了怎么样,就必要在函数内部通过kw检查
    仍以myfun()函数为例,大家期待检查是还是不是有city和job参数:

    >>> def add(x, y, z=1):     # x, y 是必选参数,z 是私下认可参数,默许值是 一

    陆.参数组合

    y = 2

    2.暗许参数
    当今只要大家把函数改为

    >>> dict2 = {'x': 2, 'y': 6}

    上边看例子:

    z = 4

    • 倘若函数定义中早已有了三个可变参数,后边随着的命名主要字参数就不再要求三个破例分隔符*了:
      >>> def myfun(name, email, *args, age, sex):
      print(name, email, args, age, sex)

    • 取名第一字参数必须传入参数名,这和岗位参数区别。假诺没有传到参数名,调用将报错:

       >>> myfun('Jack',  'xx@qq.com', '18', '女')
         Traceback (most recent call last):
         File "<stdin>", line 1, in <module>
         TypeError: myfun() takes 2 positional arguments but 4 were given
      

    10

    上边大家将介绍二种函数的参数类型:
    壹.职务参数
    大家率先定义2个求和的函数

    3

        >>> def myfun (number):
        >>>     sum = 0
        >>>     for i in number:
        >>>         sum = sum   i*i
        >>>      return sum
    

    4

    最美妙的是通过3个tuple和dict,你也足以调用上述函数:

    *args 代表可变参数,**kwargs 代表关键字参数。

    5.命名根本字参数

    4

      >>> def myfun(name, email, **kw):
      >>>     if 'age' in kw:
      >>>       # 有age参数
      >>>         pass
      >>>     if 'sex' in kw:
      >>>      # 有sex参数
      >>>         pass
    

       print 'x =', x

    >>> f1(1, 2)
       a = 1 b = 2 c = 0 args = () kw = {}
    >>> f1(1, 2, c=3)
      a = 1 b = 2 c = 3 args = () kw = {}
    >>> f1(1, 2, 3, 'a', 'b')
      a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
    >>> f1(1, 2, 3, 'a', 'b', x=99)
     a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
    >>> f2(1, 2, d=99, ext=None)
     a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}
    

    1

        >>> def myfun(x,y,z,h):
        >>>     return (x   y)*z
    

    8

    3)用法
    和入眼字参数**kw不一致,命名第三字参数必要三个独特分隔符*,*后边的参数被视为命名首要字参数。

    函数说明,python函数的参数。6

    1. 用法
      在概念关键字参数的时候 ,在函数的末梢增添**kw重大字就能够,函数内部,会把主要字参数转化为dict,我们在扩散的时候也要采纳k=v传入

      myfun('shuang','49206@qq.com',age=18,sex="女")
      name: shuang email: 49206@qq.com other: {'sex': '女', 'age': 18}
      咱们也足以像可变参数1个 事先在函数外部定义好贰个dict
      extra = {'age': '18', 'sex': '女'}
      myfun("shuang","49206@qq.com",**extra)
      name: shuang email: 49206@qq.com other: {'age': '18', 'sex': '女'}
      **extra表示把extra这些dict的有着key-value用关键字参数字传送入到函数的**kw参数,kw将收获贰个dict。
      注意澳门新葡亰网站注册 ,:kw获得的dict是extra的壹份拷贝,对kw的变动不会潜移默化到函数外的extra

    26

      def myfun (name,email,**kw):
            print('name:', name, 'email:', email, 'other:', kw)
    

    私下认可参数

     >>> def myfun(x,y):
     >>>     return x   y
    

    可变参数

    • 必选参数在前,私下认可参数在后
    • 日增暗许参数要思索不要影响旧代码的调用结果,我们得以经过扩充默许参数扩充大家的函数效率
    • 假诺有三个暗中认可参数,既能够依据顺序 如myfun(10,20,3,8),也足以不坚守顺序,当不遵循顺序传入时索要把参数名称写上如 myfun(十,20,h=捌),此时 z未有传到值,默以为1
    • 切记一点:暗中认可参数必须指向不改变对象

    6

    def myfun(name, email, *, age, sex):
    print(name, email, age, sex)
    

    1

       >>> myfun('Jack', 'xx@qq.com', age=18, sex='女')
          Jack xx@qq.com 18 女
    

    ...     return L

    三、可变参数

    3

    此地,x和y都以属于任务参数,大家依照职位顺序传入数值。一旦缺少参数,系统将会报错,那种必须传入的参数也叫必选参数

    >>> a = (1, 2, 3)

    所以,对于放4函数,都得以通过类似func(*args, **kw)的样式调用它,无论它的参数是如何定义的。(个人认为这一个地方即便灵活,不过太灵敏反而有点混乱,须求多实践才干浓密驾驭他的优势)

    8

    1)定义
    可变参数就是传播的参数个数 是可变的,可以是一个,1个以致多个,也得以是0个
    作者们先来看个例子

    3

    在函数调用的时候,Python解释器自动遵照参数地方和参数名把相应的参数字传送进去。

    7

    4)注意点

    8

    ** 四.关键字参数 **
    依然先来看个办法

    再看三个例子:

       >>> s = myfun(10)
       ---------------------------------------------------------------------------
       TypeError  Traceback (most recent call last)
       <ipython-input-18-135f1c06450c> in <module>()
       ----> 1 s = myfun(10)
       TypeError: sum() missing 1 required positional argument: 'y'
    

    上面的 * 表示率性参数,实际上,它还有别的三个用法:用来给函数字传送递参数。

    是因为调用时不够参数名age和sex,Python解释器把那么些参数均视为地方参数,但myfun()函数仅收受3个地方参数。

    2

    贰)关键字参数缺点
    唯独调用者还是可以流传不受限制的要紧字参数,那样会有自然的危机:
    借使要限量重视字参数的名字,就足以用取名第1字参数,举例,只接到city和job作为重要字参数。那种方法定义的函数如下:

    2

    • 缺省值:
      >>> def myfun(name, email, *, age='18', sex):
      >>> print(name, email, age, sex)
      是因为命名第一字参数age具有暗许值,调用时,可不传播age参数:

         >>> myfun('Jack', 'xxx@qq.com', sex='女')
             Jack xxx@qq.com 18 女
      
    • 只要未有可变参数,就非得加3个用作特殊分隔符。假如缺少,Python解释器将比异常的小概辨认地点参数和命名首要字参数:

       def myfun(name, email, age, sex):
      

      缺少 *,age和sex被视为地方参数

    9

    调用情势如下

    探访例子:

       def f1(a, b, c=0, *args, **kw):
          print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
    
       def f2(a, b, c=0, *, d, **kw):
            print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
    

    在一些情形下,大家在概念函数的时候,不能预估函数应该制定多少个参数,那时我们就足以接纳可变参数了,也正是,函数的参数个数是不明显的。

    咱俩得以见到,定义的办法 仅仅是充实了贰个***** 号,大家调用的时候就足以如此
    >>> myfun(1,3)
    >>> 10
    >>> myfun()
    >>> 0
    那便是说你恐怕会问,这假诺本身是个list也许tuple小编还得转化成那种的散布吗?当然绝不,大家能够这么做
    >>> num = [1,3]
    >>> myfun(*num)
    *nums代表把nums这些list的有所因素作为可变参数传进去。那种写法十三分有用,而且很广阔

    6

     >>> args = (1, 2, 3, 4)
     >>> kw = {'d': 99, 'x': '#'}
     >>> f1(*args, **kw)
           a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
     >>> args = (1, 2, 3)
     >>> kw = {'d': 88, 'x': '#'}
     >>> f2(*args, **kw)
     a = 1 b = 2 c = 3 d = 88 kw = {'x': '#'}
    

    6

    number 是一个list 只怕tuple,那么我们调用的时候就需求建构成1个list只怕tuple
    >>> myfun([1,2,3])
    >>> 14
    2)用法
    那么大家来探望倘诺换来是可变参数 会如何
    >>> def myfun (number):
    >>> sum = 0
    >>> for i in number:
    >>> sum = sum i
    i
    >>> return sum

    5

    那就是说 在此之前调用的myfun就能够报错,原因是事先只传了x和y,并未传位置参数z,本条时候暗许参数就派上用场了,看下边包车型客车例子
    >>> def myfun(x,y,z = 1,h=0):
    >>> return (x y)*z h
    如此这般在此之前的调用结果并不曾改动,之后再依照需求传入z值就足以了
    1)好处
    私下认可参数降低了函数调用的复杂度和同时扩大函数调用灵活度,调用者可只关切须要关心的参数,也得以针对杰出的内需重新恢复设置默许参数
    2)注意点

    >>> func(1, 2)                     # 至少提供五个参数,因为 x, y 是必选参数

    在Python中定义函数,能够用必选参数、暗中同意参数、可变参数、关键字参数和命名第三字参数,那5种参数都得以结合使用。
    注意:参数定义的顺序必须是:必选参数、默许参数、可变参数、命名第贰字参数和要紧字参数。

    24

    2

    5

     File "", line 1

    10

    6

    ...     return x y z

    2

    x = 1

    ... for i in numbers:

    5

    6

    0

    13

    9

    4

    探望例子就通晓了:

    3

    1

    args = (4, 5)

    kwargs = {}

    5

    0

    10

    >>> def add(x, y=1, z):      # y 是默许参数,必须放在全体必选参数的背后

    12

    12

    8

    13

    4

    11

    1

    ...

    >>> add_to_list()                   # 未有传递参数,使用暗中认可值,也没啥难题

    z = 0

    ... return sum

    >>> func(1, 2, 3)                  # x=1, y=2, z=3

    ...     return x y z

    ...     print 'numbers:', numbers

    和可变参数近似,大家也能够运用 **kwargs 的款型来调用函数,比如:

    3

    >>> add_to_list()                   # 未有传递参数,使用默许值,竟出现三个 'END'

    numbers: (1,)

    args = (4, 5, 6)

    4

    ...

    5

    >>> a = [1, 2]

    必选参数能够说是最普遍的了,顾名思义,必选参数就是在调用函数的时候要传播数量同样的参数,例如:

    23

    >>>

    3

    >>> a = [1, 2, 3, 4]

    1

    8

    6

    6

    7

    参数组合

    7

    >>> func(*a, **b)

    8

    >>> def sum(**kwargs):               # 函数参数是首要字参数

    咱俩看多少个例子:

    2

    函数的参数 - 廖雪峰的官方网址

    ...     sum = 0

    11

     File "", line 1, in

    2016-12-01

    6

    8

    再来看看为何私下认可参数应该使用不可变对象。

    ...     L.append('END')

    ...

    >>> add(*a)                  # 使用 *a,相当于地点的做法

    ...    sum = v

    y = 2

    >>> add(*a)

    >>> add(1, 2)       # 传递 2 个参数

    暗中认可参数要放在全体必选参数的背后

    7

    7

    2

    SyntaxError: non-default argument follows default argument

    9

    本文由bv1946韦德娱乐发布于韦德国际1946官网,转载请注明出处:函数说明,python函数的参数

    关键词: 日记本 PYTHON收藏 python 伟德国际源自

上一篇:韦德1946:轻装时代,单反相机三脚架

下一篇:没有了