day10 裝飾器 遞迴

2021-10-08 17:52:55 字數 1006 閱讀 7963

一、裝飾器

作用:不修改模組原**的情況下給模組新增新功能

關鍵字 @

from functools import wraps

defouter

(fn)

:# @wraps(fn)用於保留原函式的屬性,不使用則被修飾函式的屬性變成inner函式的屬性

@wraps(fn)

definner

(*args,

**kwargs)

:print

('before'

)# 呼叫函式並獲得返回值

res = fn(

*args,

**kwargs)

print

('after'

)return res

return inner

@outer

defsing

(song)

:print

("周杰倫唱:"

, song)

return

"唱的不錯呦"

print

(sing(

"一路向北"))

# 呼叫被裝飾的sing == 呼叫inner == 執行增加功能後的** == 返回值儲存至res並返回至inner(被修飾後的sing)

# 引數為*args和**kwargs使裝飾器能接受任意引數,稱為通用裝飾器

二、遞迴

函式在內部呼叫自身被稱為遞迴

遞迴一般由遞迴體和遞迴終止條件組成

遞迴在不斷呼叫自身時,不斷地開闢棧楨,在未得到返回值(終止條件)時,會重複執行該操作

特點:**十分簡潔,但是消耗記憶體

# 斐波那契數列

deffbnq

(n):

if n <=2:

return

1else

:return f(n-1)

+f(n-

2)

Day 10 遞迴函式

include long func int func函式呼叫 int main long func int n 呼叫形參 已知斐波那契函式1,2,3,5,8 n 1,n得到分段函式n 1時為1 n 2時為2 n 2時為 n 1 n 2 同理若求8的n次方時分段函式n 0時為1 n 1時為8 8 n ...

閉關日記 Day10

小雨。我想想怎麼寫,先挖坑。d 確認4.1 考科目三,估計過幾天要開始練車了。晚上去工作室敲 剛好看到他們在筆試,明天就是我筆試了,祝一切順利 專案f的電鋸聲識別,開始用比較勉強的方式實現,算是折衷吧,迫於時間,暫時如此,精準的識別想來是我目前做不出來的,如果畢設做這個,倒是也可以好好研究一些聲音方...

暑期訓練 day10

暑期訓練 day10 趙景樂今天主要學習了書上的鍊錶與鄰接表的知識,發現我之前的理解好像錯了,不但麻煩還不好用,今天看了書才發現原來這樣更好。不足的地方是今天沒看明白多少內容,因為一開始書上的模板就是以名字作為變數,對照起來不容易看明白,估計明天也得花時間在這上面了。今天的訓練賽ab題都比較簡單,但...