函数的五种参数的定义、用法及注意点


前言

该文档旨在厘清函数的五种参数的定义、用法及注意点。

概述

1)必选参数;2)默认参数;3)可变参数;4)命名关键字参数;5)关键字参数:

参数定义的顺序:1)→ 2)→ 3)→ 4)→ 5)

各参数说明

1)必选参数

顾名思义,是指在调用函数的时候,必须给这个参数指定一个符合该类型的值

栗子1:计算x的n次方

#计算x的n次方
def powder(x,n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s    

powder(2,3)#调用该函数
View Code

这里的powder(x,n)中的x,n就为必选参数,必须得传入,否则会报错

2)默认参数

是指在定义函数的时候,赋予该参数一个默认值,如果调用函数的时候没有传入该参数,就使用该参数的默认值

栗子2:计算x的3次方

#计算x的3次方
def powder(x,n=3):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s

powder(2)
View Code

在调用这个函数的时候,默认n=3,如果要算x的3次方,只需要传入x的值即可

注意点:

1)必选参数在前,默认参数在后,否则解释器会报错;猜测原因可能为:如果设置默认参数在前的规则,会因为连等的原因导致歧义;

2)当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面,变化小的参数就可以作为默认参数: 这句话暂时还不理解,mark一下;

3)不按顺序提供默认参数的时候,需要写上参数名:city = 'Beijing'

4)默认参数的坑:如果把默认参数定义成一个空的list,那么每次调用该函数,如果改变了[]的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了,

因此默认参数必须指向不变对象;

栗子3:默认参数的坑

#默认参数的坑
def add_end(L=[]):
    L.append('end')
    return L

add_end()
#python函数在定义时,默认参数L的值就被计算出来了,即[]
#因为默认参数L也是一个变量,它指向对象[]
#每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了
View Code

栗子4:修改默认参数的坑

#修改上面默认参数的坑
def add_end(L=None):
    if L is None:
        L=[]
    L.append('end')
    return L

add_end()
#不变对象一旦创建,对象内部的数据就不能修改
View Code

 。。。。

占个坑 还没写完 等一下再补上。。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM