美文网首页
Python的参数

Python的参数

作者: 刘圣凯 | 来源:发表于2019-03-04 18:26 被阅读0次

Python 中,除了正常定义的参数外,Python 还可以使用默认参数,可变参数,关键字参数,使得函数的灵活度非常大。

默认参数

下面的例子中,就是默认参数的运用

def sayHi(name,city='beijing',age=18):
    print('my name is',name,'. I\'m from',city,'. my age',age)
sayHi('Lisa',age=20)

上面的例子中就是一个默认参数的使用,在调用函数是,如果定义了默认参数,没有传递参数的话,那么就会使用默认的参数。有多个默认参数时,调用的时候,既可以按顺序提供默认参数,也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。

默认参数很有用,但使用不当,也会掉坑里。默认参数有个最大的坑,演示如下:

def add_end(L=[]):
    L.append('END')
    return L
add_end()
add_end()

如果是正常调用,结果似乎是没问题,可如果是多次调用,那么输出就成了下面这样

>>> add_end()
['END']
>>> add_end()
['END', 'END']

为什么会这样呢,Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。

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

可变参数

Python 中,是可以定义可变参数的,顾名思义就是说可变参数传入的参数个数不定,举一个例子

def add(n):
    ar = 0
    for x in n:
        ar = ar + x
    print(ar)
    return ar

add([1,2,5,7])

如何是可变参数的话,我们只需要

def add(*n):
    ar = 0
    for x in n:
        ar = ar + x
    print(ar)
    return ar

add(1,2,5,7)

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

def add(*n):
    print(type(*n))

add()

这里我们拿到的是一个元组,当你传已给可变参数的时候,Python会自己将收到的参数变成一个元组,那么,如果你想要传一个元组或者数组参数改怎么办呢

nums = [1,2,3,4,5]
add(*nums)

*nums 表示把 nums 这个 list 的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

关键字参数

相关文章

  • Python的参数

    Python的参数函数的参数

  • Python的参数传递

    Python的参数传递概述 根据Python的官方文档,Python中的参数传递机制是所谓的pass by ass...

  • Python的参数

    在Python 中,除了正常定义的参数外,Python 还可以使用默认参数,可变参数,关键字参数,使得函数的灵活度...

  • python---函数参数

    python---函数参数 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参...

  • Python 获得命令行参数的方法

    Python 获得命令行参数的方法 如果想对python脚本传参数,python中对应的argc, argv(c语...

  • Python fun(*args,**kwargs)中的*arg

    作者:Gakki 01. Python 函数中的两种参数 在 Python 中有两种参数:位置参数(positio...

  • Python 连接 MySQL

    安装 python 连接 mysql 工具 python 连接 mysql 参数化, 参数化主要解决的是 sql ...

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • 2021-09-10

    python调用shell脚本 1. 传入参数 python文件 可以套用python传递参数,二次传递给shel...

  • python 函数参数类型

    本文主要学习内容: python函数参数类型 python 的函数参数类型分为4种:1.位置参数:调用函数时根据函...

网友评论

      本文标题:Python的参数

      本文链接:https://www.haomeiwen.com/subject/pxoiuqtx.html