def f1():
x = 10
def f2():
print(x) # 10
x = 1000
f1() # 10
print(x) # 1000
把函式和變數一起打包拿出去了,內部函式包含對外部作用於而非全域性作用域的引用
def f1(x):
def f2():
print(x) # 10
return f2
f3 = f1(10) # f2
f3() # f2() # 10
f3() # 10
f3() # 10
f4 = f1(5)
f4() # 5
f4() # 5
def f1(x):
def f2():
print(x) # 10
return f2
f2 = f1()
f2() # f2()
def login_deco(func):
login_judge = login()
if login_judge:
res = func(*args,**kwargs)
return res
@login_deco
def shopping():
pass
# shopping = deco(shopping)
# shopping()
def sanceng(x,y):
def login_deco(func):
print(x,y)
login_judge = login()
if login_judge:
res = func(*args,**kwargs)
return res
return login_deco
@sanceng(10,20)
def shopping():
pass
day20
# shopping = login_deco(shopping)
# shopping()
可迭代物件:具有__iter__方法的物件(python中一切皆物件)
迭代器對物件:具有__iter__和__next__方法
成立響應 if 條件 else 不成立響應
print(true) if a >10 else print(false)
[ i for i in range(10)]
(i for i in range(10))
at 0x05196240>
自定義的迭代器,函式內部使用yield關鍵,有yield關鍵字的函式只要呼叫,這個呼叫後的函式就是生成器
def f1():
yield 1
g = f1() # 變成生成器
for i in g:
print(i) # 1
遞迴本質上就是函式呼叫函式本身,必須得有結束條件,並且在遞迴的過程中,問題的規模必須都不斷縮小
def find_num(num,lis):
if len(lis) == 1 and lis[0] != num:
print('沒找到')
return
mid_ind = int(len(lis) / 2) # 中間索引
mid_num = lis[mid_ind] # 中間值
if num < mid_num:
lis = lis[:mid_ind]
find_num(num,lis)
elif num > mid_num:
lis = lis[mid_ind + 1:]
find_num(num, lis)
else:
print('find')
lis = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
find_num(20,lis)
lamdbda 引數 : 邏輯**
max(dic,key=lambda name: dic[name])
max(dic)
max(lis/se/tup)
類似於工廠的流水線,機械式的一步一步完成乙個專案,把完成步驟具體細分,這樣步驟與步驟之間互不干涉
缺點:擴充套件性差,只要有乙個步驟斷了,專案就崩潰了
優點:清晰優雅
函式高階小結
目錄十 一 匿名函式 十二 面向過程程式設計 python從入門到放棄完整教程目錄 def f1 x 10 def f2 print x 10 x 1000 f1 10 print x 1000def f1 x 10 def f2 print x 10 return f2 f f1 f2 f f2 ...
Python高階小結
目錄 三 資料型別內建方法 3.2 字串型別內建方法 3.3 列表型別內建方法 3.4 元祖型別內建方法 3.5 字典型別內建方法 3.6 集合型別內建方法 3.7 布林型別 四 資料型別分類 python從入門到放棄完整教程目錄 萬能捕捉異常公式 try 邏輯 1 0except exceptio...
C 高階小結
1.c 中類的不同儲存區的物件的初始值 class test 1 class test211 intgetj 1215 1.在堆上建立物件時,成員變數初始值為隨機值 test p new test 2.在棧上建立物件時,成員變數初始值為隨機值 test t 3.在靜態儲存區建立物件時,成員變數初始為...