python学习笔记(函数)

本文详细解析了Python中函数参数的多种使用方式,包括必选参数、可选参数、默认值参数、位置参数、关键字参数、可变长参数列表等。并通过实例展示了如何正确设置和使用这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#1
#参数仅包含必选参数
def func(x,y):
    y.append(x)
    print("%s" % y)
func(1,[])
#>>[1]
func(2,[])
#>>[2]


#2
#参数包含必选和可选参数,带默认值的参数为可选参数
#若参数默认值为可变对象,默认参数保留了每次函数调用的修改
def func(x,y=[]):
    y.append(x)
    print("%s" % y)
func(1)
#>>[1]
func(2)
#>>[1, 2]
#为了防止以上情况发生,默认值改为none,并在函数体内加入检查代码
def func(x,y=None):
    if y is None:
        y=[]
    y.append(x)
    print("%s" % y)
func(1)
#>>[1]
func(2)
#>>[2]


#3
#函数参数调用,有两种方法,一种是使用位置参数,一种是使用关键字参数
def foo(w,x,y,z):
    pass
foo(1,2,3,4)
foo(1,2,z=4,y=3) #使用关键字参数时,参数的顺序并不重要


#4
#可变长参数列表,在定义函数时,使用*和**

#使用*,将所有余下参数作为元组放入args变量,在函数内调用别的函数时,使用*args,将args元组重新转为参数列表,传递给被调用函数
def foo1(x,*args):
    print("foo1: p1=%s,p2=%s" % (x,args))
def foo(w,x,*args):
    print("foo: p1=%s,p2=%s,p3=%s" % (w,x,args))
    foo1(x,*args)
foo(1,2,3,4,5,6)
#>>foo: p1=1,p2=2,p3=(3, 4, 5, 6)
#>>foo1: p1=2,p2=(3, 4, 5, 6)

#使用**,将所有余下的关键字参数作为字典放入kwargs变量
def foo(w,x,**kwargs):
    print("foo: p1=%s,p2=%s,p3=%s" % (w,x,kwargs))
foo(1,x=2,y=3,z=4)
#>>foo: p1=1,p2=2,p3={'y': 3, 'z': 4}

#同时使用*和**
def foo(w,*args,**kwargs):
    print("foo: p1=%s,p2=%s,p3=%s" % (w,args,kwargs))
foo(1,2,3,y=4,z=5)
#>>foo: p1=1,p2=(2, 3),p3={'y': 4, 'z': 5}

闭包和装饰器的两篇不错的文章

https://foofish.net/understand-decorator.html

https://foofish.net/python-decorator.html

 

转载于:https://www.cnblogs.com/sky58/p/8323499.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值