argument python 参数 举例

 

举例

例1:
def
multipute(x,y): x = 2 y[0] = ['spam'] return x,y X = 1 L = [1,2] X,L = multipute(X, L) print('参数,x 是函数作用域内的变量名,第一个赋值对函数没有影响,它仅仅把本地变量x修改为引用一个完全不同的对象,并没有改变调用者作用域中名称x 的绑定。y也是引用的本地变量名,只有在修改的对象大于比函数生命更长的时候,才会影响到调用者') print(X,L)


例2:
#默认参数和关键字参数 def f(a,b=2,c=3): print(a,b,c) print('###默认参数和关键字参数') f(1) f(1,3,4)
例3:
def func1(spam,eggs,toast=0,ham=0): print(spam,eggs,toast,ham) func1(1,2,3,4) func1(toast=1,eggs=2,spam=3)

例4:
##任意参数*args,python 将所有位置相关的参数搜集到一个新的元组中,并将这个元组赋值给args def e(*args): print(args) print('###任意参数*args,python 将所有位置相关的参数搜集到一个新的元组中,并将这个元组赋值给args') e() e('a',2)

例5:
##任意参数**args,python 将所有位置相关的参数搜集到一个新的字典中,并将这个字典赋值给args def m(**args): print(args) print('##任意参数**args,python 将所有位置相关的参数搜集到一个新的字典中,并将这个字典赋值给args') m() m(a=1,b=2,c=3)
例6:
##混合参数演示 def n(a,*pargs,**args): print(a,pargs,args) print('##混合参数演示结果') n(1) n(1,2,3,4,c=5,m=6) n(1,34,c=4,m=5)

例7:
###解包参数 def l(a,b,c,d): print(a,b,c,d) print('###解包参数') args = (1,2) args += (3,4) l(*args) args = {'a':2,'b':3,'c':4} args['d'] =5 l(**args) l(1,*(2,10),**{'d':5}) l(1,*(2,11),d=10)

例8:
###下面的例子是通过传递任何发送进来的参数来支持具有任意参数的任意函数 def tracer(func2,*pargs,**kargs): print('calling:', func2.__name__) return func2(*pargs,**kargs) def func2(a,b,c,d): return a +b+c+d print('###tracer 搜集参数,然后var args调用语法来传递它') print(tracer(func2,1,2,c=20,d=40))

 

输出结果

例1: 

参数,x 是函数作用域内的变量名,第一个赋值对函数没有影响,它仅仅把本地变量x修改为引用一个完全不同的对象,并没有改变调用者作用域中名称x 的绑定。y也是引用的本地变量名,只有在修改的对象大于比函数生命更长的时候,才会影响到调用者
2 [['spam'], 2]

 例2: 

###默认参数和关键字参数
1 2 3
1 3 4

 例3: 

1 2 3 4
3 2 1 0

 例4: 

###任意参数*args,python 将所有位置相关的参数搜集到一个新的元组中,并将这个元组赋值给args
()
('a', 2)

 例5: 

##任意参数**args,python 将所有位置相关的参数搜集到一个新的字典中,并将这个字典赋值给args
{}
{'b': 2, 'c': 3, 'a': 1}

 例6: 

##混合参数演示结果
1 () {}
1 (2, 3, 4) {'m': 6, 'c': 5}
1 (34,) {'m': 5, 'c': 4}

 例7: 

###解包参数
1 2 3 4
2 3 4 5
1 2 10 5
1 2 11 10

 例8: 

###tracer 搜集参数,然后var args调用语法来传递它
calling: func2
63

 

posted @ 2017-12-13 14:22  左丿仔  阅读(2047)  评论(0编辑  收藏  举报