python 裝飾器和推導式的基本應用

2022-05-17 02:43:24 字數 1378 閱讀 9795

函式不被呼叫內部**不被執行

函式在被呼叫的時候,每次都會開闢乙個新的記憶體位址,互不干擾

#經典案例

def func(num):

def inner():

print(num)

return inner

result =

for i in range(10):

f = func(i)

v1 = result[0]()

v2 = result[9]()

print(v1,v2)

def 外層函式(引數):

def 內層函式(*args,**kwargs);

return 引數(*args,**kwargs)

return 內層函式

@外層函式

def index()

pass

#示例:

def func(arg):

def inner():

v = arg()

return v

return inner

@func

def index():

print(123)

return 666

print(index)

應用場景:想要為函式擴充套件功能時,使用裝飾器

# 計算函式執行時間

def inner():

start_time = time.time()

v = func()

end_time = time.time()

print(end_time-start_time)

return v

return inner

def func1():

time.sleep(2)

print(123)

def func2():

time.sleep(1)

print(123)

func1()

# 題

v8 = [lambda x:x*i for i in range(10)]

# 1.請問 v8 是什麼?

# 2.請問 v8[0](2) 的結果是什麼?

# 題def num():

return [lambda x:i*x for i in range(4)]

# num() -> [函式,函式,函式,函式]

print([ m(2) for m in num() ]) # [6,6,6,6]

推導式內建模組

python中的推導式和生成式

對乙個列表 集合,字典 根據條件進行迴圈遍歷,把符合條件的篩選出來並生成新的列表 集合,字典 括號內可以寫for迴圈和if else並且可以多層巢狀for if,甚至可以在裡面再巢狀乙個推導式 中括號內寫入for迴圈,對乙個列表進行遍歷,然後寫乙個if條件判斷,對每次迴圈取出的值進行判斷,結果為tr...

python的推導式

python的推導式 multiples for i in range 30 if i 3is 0 print multiples 執行結果 0,3,6,9,12,15,18,21,24,27 這段 從0 29這個序列中,生成乙個3的倍數的列表。如果用推導式寫這段 multiples i for i...

python的推導式

1 python的推導式 推導式是從乙個或多個迭代器快速簡潔的建立資料結構的一種辦法,它可以將迴圈和條件判斷結合,從而可以避免語法冗長的 1 按照我們學的最基礎的方法,輸出乙個列表 my list 0 1 2 3 4 5 print my list 輸出 0,1,2,3,4,5 2 通過for迴圈方...