zoukankan      html  css  js  c++  java
  • python函数的参数

    1.位置参数

      位置参数也就是必须要传的参数:

    def power(x):
        return x * x

      对于power(x)函数,参数x就是一个位置参数。

      当我们调用power函数时,必须传入有且仅有的一个参数x

    2.默认参数

    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s

      这样,当我们调用power(5)时,相当于调用power(5, 2)

       这里n=2,2就是默认参数,可传,可不传

    3.可变参数

    def calc(*numbers):
        sum = 0
        for n in numbers:
            sum = sum + n * n
        return sum

      定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple。但是,调用该函数时,可以传入任意个参数,包括0个参数。

    >>> nums = [1, 2, 3]
    >>> calc(*nums)
    14

      *nums表示把nums这个list的所有元素作为可变参数传进去

    4.关键字参数

      关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict.

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

      

    5.命名关键字参数

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

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

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

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

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

    6.参数组合问题

      在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

    参考:廖雪峰大神

  • 相关阅读:
    UVa Live 3942 Remember the Word
    UVa 11019 Matrix Matcher
    bzoj 4445 小凸想跑步
    Codeforces 832E Vasya and Shifts
    二值法方法综述及matlab程序
    排序算法(1)-插入,选择,冒泡
    如果我想了解一个陌生人
    Libsvm在matlab环境下使用指南
    科学预测世界杯-采用机器学习方法
    应用笔画宽度变换(SWT)来检测自然场景中的文本
  • 原文地址:https://www.cnblogs.com/jingmin/p/7866712.html
Copyright © 2011-2022 走看看