函数-参数

参数

参数:函数的参数是存在内存中的栈信息,函数执行完后便会释放掉。

***************************普通参数****************************

def test_args(a, b):

print a, b,

print a+b

test_args(1, 2)

***************************默认参数****************************

def test_args(a, b=1, c=3):  

print a, b, c,

print a+b+c

test_args(2)

test_args(23, c=4.56)

test_args('abc',123, 'xyz', 456.789)

需求:某一天我的函数想增加一个参数怎么办?

解决:通过默认参数去解决。

*************************高阶 变长参数 ****************************

可变长参数 达到调用函数的时候,可以传入任意形式任意个数的参数。

*用来传递任意个名字参数,这些参数会一个Tuple的形式访问。

**用来处理传递任意个有名字的参数,这些参数用dict来访问。

*args  :    tuple

**kwargs :  就是当你传入key=value是存储的字典

假如我定义一个函数, 参数设置成 *args,  **kwargs的变长参数,那么也就是说定义的函数,参数不限定。

*args,  **kwargs:代表着可以支持传入的任何形式的参数。

def test(a, *args, **kwargs):

    print a

    print args

    print kwargs

test(1, 2, 3, t=4, f=5)

def foo(*args, **kwargs):

    print 'args = ', args

    print 'kwargs = ', kwargs

    print '---------------------------------------'

foo(1,2,3,4)

foo(a=1,b=2,c=3)

foo(1,2,3,4, a=1,b=2,c=3)

foo('a', 1, None, a=1, b='2', c=3)

原文地址:https://www.cnblogs.com/liang545621/p/7523479.html