在這個用例中,我們要討論的是關於函式的傳參問題
我所使用的python版本為3.3.2
對於函式:
1deffun(arg):
2print
(arg)34
defmain():
5 fun('
hello,hongten')
67if__name__ == '
__main__':
8 main()
當我們傳遞乙個引數給fun()函式,即可列印出傳遞的引數值
資訊。這裡列印的資訊為:
hello,hongten
對於下面的用例:
1def fun(a=1, b=none, c=none, *args):
2print('
,,,'
.format(a, b, c, args))34
defmain():
5 fun(a='
one'
)6 fun('
one')7
8if__name__ == '
__main__':
9 main()
當傳遞的引數為:fun(a='one')和fun('one')這樣的傳參都是把值複製給引數a,所有兩種傳參的效果是一樣的:
one,none,none,()one,none,none,()
當然我們也可以給引數:b,c,*args賦值
如:
1def fun(a=1, b=none, c=none, *args):
2print('
,,,'
.format(a, b, c, args))34
defmain():
5 fun('
one',1,2,('
hongten'))
67if__name__ == '
__main__':
8 main()
這樣我們就給引數:b,c,args賦上了值
執行效果:
one,1,2,('hongten
',)
在上面的列子中,我們不能繞開引數*args前面的引數a,b,c給*args複製:
如:
1def fun(a=1, b=none, c=none, *args):
2print('
,,,'
.format(a, b, c, args))34
defmain():
5 fun(args=('
hongten'))
67if__name__ == '
__main__':
8 main()
執行效果:
traceback (most recent call last):file
"e:/python33/python_workspace/test_fun.py
", line 21, in
main()
file
"e:/python33/python_workspace/test_fun.py
", line 18, in
main
fun(args=('
hongten'))
typeerror: fun() got an unexpected keyword argument
'args
'
但是對於引數:a,b,c來說,是可以使用這樣的方式進行賦值
如:
1def fun(a=1, b=none, c=none, *args):
2print('
,,,'
.format(a, b, c, args))34
defmain():
5 fun(c=('
hongten
'), b=2, a=[1,2,3])67
if__name__ == '
__main__':
8 main()
執行效果:
[1, 2, 3],2,hongten,()
python開發函式高階 匿名函式
簡單的需要用函式去解決的問題 匿名函式的函式體 只有一行 也叫lambda表示式 cal2 函式名 lambda n 引數 n n 引數怎麼處理,並且返回值 引數可以有多個,用逗號隔開 匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值 返回值和正常的函式一樣可以是任意資料型別 1...
Python的函式引數傳遞
原址 我想,這個標題或許是很多初學者的問題。尤其是像我這樣的對c c 比較熟悉,剛剛進入python殿堂的朋友們 c c 的函式引數的傳遞方式根深蒂固的影響這我們的思維 引用?傳值?究竟是那種呢。呵呵,語言的特性決定了是使用的方法,那麼,現在我們來 一下python的函式引數傳遞方式。在開始之前,我...
Python的函式引數傳遞
看兩個例子 a 1 deffun a a 2 fun a print a 1a deffun a fun a print a 1 所有的變數都可以理解是記憶體中乙個物件的 引用 或者,也可以看似c中void 的感覺。a 1 deffun a print func in id a func in 41...