>>> graphic = '三角形'
>>> def
chang():
graphic = '
正方形'
def chang1(): #
內部巢狀的函式命名可相同
graphic = '圓形'
print('
第三層列印
',graphic)
chang1()
print('
第二層列印
',graphic)
>>>chang()
第三層列印 圓形
第二層列印 正方形
>>> print('
第一層列印
',graphic)
第一層列印 三角形
#在各自的命名空間中同名變數不受影響
lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數
語法為 lambda [arg1 [,arg2,.....argn]]:expression ,以變數的方式呼叫 sum = lambda arg1, arg2: arg1 + arg2
裝飾器的作用:在原先**不改變的情況擴充套件功能
deftest(f):
definner():
print('
hello')
f()return inner #
返回內部函式物件,內部不呼叫,這種現象稱為『『閉包』』
@test
deflog():
print('
world
')
#@test 相當於執行 log= test(log)
log()
#現在的log()相當於inner()
--------------------hello
world
裝飾器的引數傳遞
deftest(f):
def inner(*arg):
print('
hello')
f(*arg) #
此處f(*arg)是原先login函式的呼叫
return
inner
@test
def login(x=none):
if x == '
xing':
print('
world')
login()
#不傳引數,因為inner函式是可選引數,f(*arg)則中則為預設引數x = none
---------------
#hello
--------------login(
'xing')
---------------
#hello
#world
遞迴函式需設停止遞迴的條件
遞迴**還有**的話,遞迴結束後還會依次執行
defcalc(n):
(n )
n = int(n /2) #
50if n >0:
calc(n) #50
print(n)
a = [x for x in range(10)]b = (x for x in range(10))
(a)print
(b)-------------------
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#at 0x00505070>
生成器函式
使用yield關鍵字
defg_test():
while
true:
print('
hello')
n = yield 5 #
yield是暫停並return 5
(n)g = g_test() #
必選先執行賦值變數操作
g.__next__() #
剛建立的生成器必須先執行此步
print(g.__next__
())g.send(
'world
') #
send方法可傳送值給n
------------------------hello
none
#執行完第乙個__next__(),n並未賦值,print(n)為none
hello
5 #
yield 5 返回了5 ,print()出來了
world
hello
python基礎 高階函式
把函式作為引數傳入,這樣的函式稱為高階函式,高階函式是函式式程式設計的體現。函式式程式設計就是指這種高度抽象的程式設計正規化。在python中,abs 函式可以完成對數字求絕對值計算。abs 10 10round 函式可以完成對數字的四捨五入計算。round 1.2 1 round 1.9 2def...
十 函式高階
形參中的動態引數 def func a,b,args,c f kwargs print a print b print args print c print kwargs func 9,2,3,4,45,6,c 3 d 45,f pp 9 2 3,4,45,6 3 args 是把實參中多餘的的位置引...
Python基礎 高階函式 Map Reduce
map 函式接受2個引數 1.引數 函式 2.引數 iterable 示例 usr bin env python3 coding utf 8 map 函式的使用 轉換為字串 deffuntion x return str x deftest mlist 1,2,3,4,5 list 1,2,3,4,...