函數(shù)的生命周期返回值和全局變量

講函數(shù)試試拆解當前內(nèi)容:
def是個語句,
語句是表達式組成,
表達式是對象的處理,
對象的概念以后再細說。
回顧之前內(nèi)容,a = 1是一個賦值的表達式。
列表里數(shù)字的求總和、求平均值等,一堆代碼順序執(zhí)行,多次使用復制粘貼重復好幾次?不方便。
為什么用函數(shù)?不用重復之前一堆代碼了,只寫一次,之后復用了。
調(diào)用這個概念可以多提一句。在裝飾器、閉包的地方我還迷糊過,特地繞回去看好幾遍函數(shù)。函數(shù)對象和調(diào)用,對象就像寫了一段代碼但是不運行,加括號才是(調(diào)用)運行代碼。也可以導包的時候說。
這個能回歸之前知識,方便理解順序執(zhí)行的關(guān)系,再引入作用域概念。
函數(shù)的定義語句、調(diào)用函數(shù),打破了之前自上而下執(zhí)行的固有概念。
所以視頻里學生對a=100的位置會迷糊。
def解釋為定義一個函數(shù),跟賦值并創(chuàng)建一個變量是同一回事可能好理解些。
變量只有全局可以說說LGEB原則,不止python其他語言都涉及。
變量作用域可以跟順序執(zhí)行結(jié)合,除了上下,還有層級概念。就像寫數(shù)學題,一部分寫在另一張草稿紙上。草稿紙疊加在試卷上,可以草稿用試卷的變量,但是試卷不能用草稿紙變量,要用得global。內(nèi)置像是Π=3.14這樣的概念,學生用試卷的例子是不是好理解。
學生太懵逼了,需要給點信心。
標簽: