一、裝飾器
作用:不修改模組原**的情況下給模組新增新功能
關鍵字 @
from functools import wraps
defouter
(fn)
:# @wraps(fn)用於保留原函式的屬性,不使用則被修飾函式的屬性變成inner函式的屬性
@wraps(fn)
definner
(*args,
**kwargs)
('before'
)# 呼叫函式並獲得返回值
res = fn(
*args,
**kwargs)
('after'
)return res
return inner
@outer
defsing
(song)
("周杰倫唱:"
, song)
return
"唱的不錯呦"
(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題都比較簡單,但...