日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

闭包、装饰器与递归_月隐学python第12课

發布時間:2023/12/19 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 闭包、装饰器与递归_月隐学python第12课 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

1. 閉包

2 裝飾器(重點,難點)

2.1 裝飾器寫法

2.2使?@語法糖將裝飾器應?到指定函數上,簡化使?

2.3 帶有不定?參數的裝飾器

2.4 多個裝飾器作?在?個函數上(不重要)

3.遞歸函數(不是重點)

3.1 嵌套調?

3.2 遞歸調?

3.3 遞歸調?過程

3.4 遞歸適?條件

作業

用裝飾器補充:將信息保存到文件?


1. 閉包


我們可以在?個函數中再定義?個函數,在函數內部定義的函數稱之為內部函數,內部函數只能在函數內使?,不會污染外部空間。定義內部函數的函數稱之為外部函數,這樣的定義構成函數的嵌套

  • 內部函數只能在外部函數?調?,外界?法直接調?內部函數

在?個外部函數中定義了?個內部函數,內部函數?引?了外部函數的變量,并且外部函數的返回值是內函數的引?。這樣內部函數和其執?所需的環境變量就構成了?個閉包

?般情況下,如果?個函數結束,函數的內部所有東?都會釋放掉,局部變量都會消失。但是閉包是?種特殊情況,如果外函數在結束的時候發現有??的局部變量將來會在內部函數中?到,就把這個局部變量綁定給了內部函數,然后??再結束。

在閉包中?法直接修改外部變量x的值

在python3中可以通過nonlocal關鍵字聲明?下x,表示這個變量不是局部變量,需要向上?層變量空間找這個變量。

2 裝飾器(重點,難點)


軟件開發中有?條?常重要的規則就是:對修改封閉,對擴展開放。 對于?個現有的函數,如果想要增強此函數的功能,但是不允許修改此函數源代碼的時候,使?裝飾器來解決這個問題

  • 本質:就是?個閉包,還是?個返回函數的?階函數
  • 好處:就是在不?修改原函數代碼的前提下給函數增加新的功能


2.1 裝飾器寫法

2.2使?@語法糖將裝飾器應?到指定函數上,簡化使?

2.3 帶有不定?參數的裝飾器


同?個裝飾器可以應?于多個函數

2.4 多個裝飾器作?在?個函數上(不重要)

3.遞歸函數(不是重點)


3.1 嵌套調?


在函數A中可以調?函數B,在函數B中可以調?函數C,這種調??式稱為函數的嵌套調?。

3.2 遞歸調?

?個函數直接或間接的調???則稱為遞歸調?。

3.3 遞歸調?過程


遞歸調?可分解為兩個過程,正向遞歸調?和逆向遞歸返回。

3.4 遞歸適?條件


如果?個問題規模縮減后,求解?式和原來?樣,?規模問題解決后導致問題的最終解決,則可適?遞歸

  • 形式是遞歸的 階乘和斐波那契數列
  • 結構是遞歸的 列表遍歷
  • 解法是遞歸的 漢諾塔

?

遞歸的寫法:

  • ?個遞歸程序必須包含兩部分:

? ? ?1) 遞歸終?條件
? ? ?2) 遞歸調???

作業

1.有五個學?坐在?起,問第五個?多少歲?答?第四個?2歲,第四個?說它?第三個??2歲, ,...第?個?說他10歲。請寫?個遞歸函數計算第5個學?多少歲(遞歸實現)

2.某班期末考試科?為數學和計算機,有最多不超過30?參加考試。學?的信息包括學號、姓名。考試后要求:

(1)計算每個學?的總分和平均分;

(2)按總分成績由?到低排出成績的名次;

(3)打印出名次表,表格內包括學?姓名、學號、各科分數、總分和平均分;

(4)任意輸??個學號,能夠查找出該學?在班級中的排名及其考試分數
編寫要求:

(1) 要對?戶輸?進?驗證,如果輸?的不是0-4顯示錯誤,然后繼續輸?

(2) 要能夠連續不斷的進?選擇

(3) 每?項功能都要封裝函數完成,函數單獨放到?個模塊中

(4) 菜單及其?戶選擇的處理放到主模塊中。
(5) 學?數據保存到?件

用裝飾器補充:將信息保存到文件

總結

以上是生活随笔為你收集整理的闭包、装饰器与递归_月隐学python第12课的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。