Python函式引數傳遞以及變數作用域
1.傳遞多個引數
使用*號,表示函式接受多個引數
- >>> def f(*args):
- print args
- >>> f(1)
- (1,)
- >>> f(1,2,3)
- (1, 2, 3)
- >>> f()
- ()
- >>> f(1,2)
- (1, 2)
2.傳遞字典引數
使用**號,表示傳遞的是字典引數- >>> def f1(**args):
- print args
- >>> f1(a=1,b=2)
- {'a': 1, 'b': 2}
3.將函式名作為引數傳遞
- #coding=utf-8 #用來支援中文,=號前後不能有空格
- #minmax.py
- def minmax(test,*args):
- res=args[0]
- for arg in args[1:]: #迴圈args中內容副本
- if test(arg,res):
- res=arg
- return res
- def lessthan(x,y):return x<y
- def grtrthan(x,y):return x>y
- print minmax(lessthan,4,7,9,22,2,18)
- print minmax(grtrthan,4,7,9,22,2,18)
4.傳遞混合引數
- >>> def f2(a,*pargs,**kargs):
- print a,pargs,kargs
- >>> f2(1,2,3,4,5,x=11,y=12)
- 1 (2, 3, 4, 5) {'y': 12, 'x': 11}
5.練習--字串∪和∩運算
- >>> def intersct(*args):
- res=[]
- for x in args[0]:
- for other in args[1:]:
- if x not in other:break
- else:res.append(x)
- return res
- >>> def union(*args):
- res=[]
- for seq in args:
- for x in seq:
- if not x in res:
- res.append(x)
- return res
- >>> s1,s2,s3="SPAM","SCAM","SLAM"
- >>> intersct(s1,s2)
- ['S', 'A', 'M']
- >>> union(s1,s2)
- ['S', 'P', 'A', 'M', 'C']
6.類成員變數和例項變數
- >>> class C:
- X = 33
- def m(self):
- X = 44
- self.X = 55
- >>> obj = C()
- >>> print obj.X
- 33
- >>> obj.m()
- >>> print obj.X
- 55
- >>> C.X
- 33
6.練習--列印類的繼承關係樹
- <span style="font-size: 12px;">>>> def classtree(cls,indent):
- print '.'*indent,cls.__name__
- for supercls in cls.__bases__:
- classtree(supercls,indent+3)
- >>> def instancetree(inst):
- print 'Tree of ',inst
- classtree(inst.__class__,3)
- >>> def selftest():
- class A:pass
- class B(A):pass
- class C(A):pass
- class D(B,C):pass
- class E:pass
- class F(D,E):pass
- instancetree(B())
- instancetree(F())
- >>> selftest()
- Tree of <__main__.B instance at 0x012E1A08>
- ... B
- ...... A
- Tree of <__main__.F instance at 0x012E1A08>
- ... F
- ...... D
- ......... B
- ............ A
- ......... C
- ............ A
- ...... E
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2149294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- Python 函式和變數作用域Python函式變數
- python函式之引數傳遞Python函式
- 彙編眼中的函式呼叫引數傳遞以及全域性與區域性變數與“基址”函式變數
- python中函式的引數傳遞Python函式
- JavaScript函式傳遞引數JavaScript函式
- 函式的引數傳遞函式
- JavaScript函式引數傳遞JavaScript函式
- Python的函式引數傳遞:傳值?引用?Python函式
- 『無為則無心』Python函式 — 29、Python變數和引數傳遞Python函式變數
- Python語法—函式及引數傳遞Python函式
- 函式作為引數傳遞函式
- 函式引數傳遞及返回函式
- react 外部函式的引用以及onClick傳遞引數React函式
- nls引數、環境變數以及函式等起作用的順序!變數函式
- Python3之函式的引數傳遞與引數定義Python函式
- python 函式引數的傳遞(引數帶星號的說明)Python函式
- 遞迴函式,可變引數列表遞迴函式
- python---函式引數、變數Python函式變數
- js中函式引數值傳遞和引用傳遞JS函式
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- python中函式引數傳遞的幾種方法Python函式
- python變數與變數作用域Python變數
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- php函式引用傳遞引數的方法PHP函式
- JavaScript 事件處理函式傳遞引數JavaScript事件函式
- onclick事件處理函式傳遞引數事件函式
- Python入門(十八):變數作用域與巢狀函式Python變數巢狀函式
- python函式變長引數Python函式
- Python 函式(可變引數)Python函式
- php函式之如何用預設引數和可變長度引數方式傳遞?PHP函式
- 函式呼叫引數變數傳值的問題函式變數
- JavaScript為事件處理函式傳遞引數JavaScript事件函式
- 『無為則無心』Python函式 — 26、Python函式引數的傳遞方式Python函式
- javascript的函式的引數是區域性變數JavaScript函式變數
- 如何計算PHP函式中傳遞的引數數量PHP函式
- 函式名作為引數傳遞 與 回撥函式函式
- 『無為則無心』Python函式 — 30、Python變數的作用域Python函式變數