函数的参数

python中定义函数时可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

1.必选参数

  必选参数就是位置参数,调用函数时必须传入参数

def test(x, y):
    sum1 = x + y
    return sum1


print(test(1, 2))

2.默认参数

   顾名思义默认参数就是函数有默认的参数可以不用传值给参数

eg:计算某个数的平方

def test(x, y=2):
    sum1 = x**y
    return sum1
print(test(3))

输出

9
默认参数为2,当然我们也可以传入两个参数test(3,3)则计算3的三次方
注意!!!
默认参数只能指向不可变对象
eg:向一个列表中添加一个元素
def text(s=[]):
    s.append('bbu')
    return s
print(text())
print(text())
print(text())  

输出

['bbu']
['bbu', 'bbu']
['bbu', 'bbu', 'bbu']

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数s也是一个变量,它指向对象[],每次调用该函数,如果改变了s的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了,这时只需要将默认参数改为不可变对象就可以了(不可变对象有字符串,元组,数字None

3.可变参数

  可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,
eg:计算n个数的乘积
方法1 传入一个列表或者元组
def test(numbers):
    b = 1
    for a in numbers:
        b = b * a
    return b
print(test([1,2,3]))         
6

方法2 将函数的参数改为可变参数*args

def test(*args):
    b = 1
    for a in args:
        b = b * a
    return b
print(test(1,2,3))  
6

  a.如果事先有一个列表或者元组,需要调用可变参数则可以

def test(*args):
    b = 1
    for a in args:
        b = b * a
    return b
number = [1,2,3,4]
print(test(number[0],number[1],number[2],number[3]))

  b.也可以这样(最常用的方法)

def test(*args):
    b = 1
    for a in args:
        b = b * a
    return b
number = [1,2,3,4]
print(test(*number))

4.关键字参数

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

5.命名关键字参数

 

 

  

  

  

 

 

posted @ 2018-03-21 23:02  sumcet  阅读(329)  评论(0编辑  收藏  举报