Python函式引數傳遞以及變數作用域

2021-06-14 11:22:59 字數 2461 閱讀 7279

使用*號,表示函式接受多個引數

>>> def f(*args):

print args

>>> f(1)

(1,)

>>> f(1,2,3)

(1, 2, 3)

>>> f()

()>>> f(1,2)

(1, 2)

使用**號,表示傳遞的是字典引數

>>> def f1(**args):

print args

>>> f1(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 xy

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)

5.練習--字串∪和∩運算

>>> def intersct(*args):

res=

for x in args[0]:

for other in args[1:]:

if x not in other:break

return res

>>> def union(*args):

res=

for seq in args:

for x in seq:

if not x in res:

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.練習--列印類的繼承關係樹

>>> 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

Python 函式定義以及引數傳遞

形如 deffunc args.dosomething以關鍵字def 開頭,後面是函式名和引數下面是函式處理過程。舉例 def add a,b return a b引數可以設定預設值,如 def add a,b 10 注意 預設值引數只會運算一次 return a b預設值引數只會運算一次是什麼意思...

Python 函式以及引數傳遞

函式簡介 function 函式也是乙個物件 物件是記憶體中專門用來儲存資料的一塊區域 函式可以用來儲存一些可執行的 並且可以在需要時,對這些語句進行多次的呼叫 建立函式 def 函式名 形參1,形參2,形參n 塊 函式名必須要符號識別符號的規範 可以包含字母 數字 下劃線 但是不能以數字開頭 函式...

python函式引數傳遞

例子1 def f x x 0 10 a 1,2 f a a 0 輸出 記憶體空間 命名空間 pos1 list 1,2 a pos1 x pos1 對列表a應用這個函式,python會先讓x指向a所在的記憶體。由於x和a共享同乙個物件,修改x 0 會讓a的值相應改變。例子2 def mod x x...