我的函式的最後一課

2021-10-10 14:30:55 字數 2516 閱讀 2623

# 定義乙個高階函式,實現將乙個列表中所有的偶數重新組合成乙個新的列表

list_1 =

list

(range(1

,15))

# 先定義乙個判斷偶數的函式a

defa

(i):

if i %2==

0:return

true

# 定義乙個函式b,將資料新增到新的列表中

defb

(func, l)

: list_2 =

for n in l:

if func(n)

:return list_2

print

(b(a, list_1)

)結果:[2,

4,6,

8,10,

12,14]

閉包

形成閉包的條件:

def

make_fn()

: list_2 =

deffn3

(n):

return

sum(list_2)

/len

(list_2)

return fn3

f = make_fn(

)print

(f(52))

# 52.0

print

(f(555))

# 303.5

print

(f(999))

# 535.3333333333334

list_2 =

# 閉包內部存在乙個list_2的列表,不會受影響

print

(f(45))

# 412.75

匿名函式

print((

lambda a, b: a + b)

(100

,200))

# 300

裝飾器的引入

def

add(a,b)

: r = a + b

return r

# 現在又對著乙個程式進行優化,加上提示字元,計算開始,計算結束

defadd

(a,b)

:print

('開始計算....'

) r = a + b

print

('結束計算....'

)return r

# 這樣很明顯就已經修改了源**。如果這個**是別人給你的而且是比較複雜的**的話,你還敢這樣修改嗎?出現這樣的狀況我們應該怎麼做呢?這個時候我們可以使用裝飾器。

裝飾器的使用

def

start_end

(old)

:# 建立乙個函式

defnew_function

(*a,

**b)

# 使用*a, **b的方式什麼樣的引數我們都可以接受到了

print

('函式開始了....'

) result = old(

*a,**b)

# 引數old 要擴充套件的函式,即要被優化的函式

print

('函式結束了....'

)return result

return new_function

# 這樣沒有改變源**的方式對原函式進行優化、擴充套件的一些程式被我們稱為裝飾器

# 這樣的**直接傳參就可以了,但是我們一般並不會像這樣去使用裝飾器

@start_end

defspeak()

:print

('今天也要好好學習!!!'

)speak(

)結果:函式開始了...

.今天也要好好學習!!!

函式結束了...

.# 一般我們會這樣用

命名空間

命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典

locals()可以用來獲取當前作用域的命名空間

返回值是乙個字典

如果在全域性作用域中,locals()就會獲取全域性命名空間;如果是在函式作用域中,locals()就會獲取函式命名空間

a =

10deffn(

):print

('我是函式fn....'

)

scope =

locals()

print

(scope)

結果:,

'__builtins__'

:(built-in)

>

,'__file__'

:'c:/users/dell/pycharmprojects/study/day11/命名空間.py'

,'__cached__'

:none

,'a':10

,'fn'

:>

,'scope'

:}

永遠的一課

面對困難,許多人戴了放大鏡,但和困難拼搏一番,你會覺得,困難不過如此。那天的風雪真暴,外面像是有無數發瘋的怪獸在呼嘯廝打。雪惡狠狠地尋找襲擊的物件,風嗚咽著四處搜尋。大家都在喊冷,讀書的心思似乎已被凍住了。一屋的跺腳聲。鼻頭紅紅的歐陽老師擠進教室時,等待了許久的風席捲而入,牆壁上的 中學生守則 一鼓...

我的第一課 電子學基礎

平時遇到電阻串並聯的問題。總是拿計算器計算,而看了這本書,發現可以用乙個近似的方法,快速計算電阻值。方法如下 乙個較大的電阻和乙個較小的電阻串聯,總阻值接近於較大的電阻。乙個較大的電阻和乙個較小的電阻併聯,總阻值接近於較小的電阻。n個相同的電阻併聯後的阻值,等於單個電阻的1 n。電阻損耗的功率 p ...

XML的第一課

xml,呵呵新接觸的。以前也聽過xml,但不是很了解。第一章今天也學完了,也對xml有了一點的了解,下來我也談談 xml 呵呵。主要是第一章xml的概述和dtd技術。如果那裡有錯誤,希望朋友們幫我指出來。也讓我學習學習。不廢話了,進入正題xml 一 什麼是xml 和xml 的產生 xml英文縮寫 e...