python速成要多久2019-8-28_Python脱产8期 Day13 2019/4/28
一 函數的嵌套定義
1在一個函數的內部定義另一個函數。
2.為什么有函數的嵌套定義:
# 1)函數fn2想直接使用fn1函數的局部變量,可以講fn2直接定義到fn1的內部,這樣fn2就可以直接訪問fn1的變量
# 2)函數fn2名字就變成fn1的局部變量了,正常只能在fn1中使用,想在外部使用,可以講fn2函數對象作為fn1函數的返回值
# 3)在外部也用同名的變量fn2來接收fn1函數的執行結果(fn1函數的返回值),那么fn2也就是可以在外部被調用
二 global關鍵字
# 作用:將局部的變量提升為全局變量
# 1.全局沒有同名變量,直接提升局部變量為全局變量
# 2.有同名全局變量,就是統一全局與局部的同名變量
# -- 如果局部想改變全局變量的值(發生地址的變化),可以用global聲明該變量
# num = 888
def fn1():
global num
# print(num)
# 沒有global修飾,num就是自己局部的變量
# 有global修飾,num就是全局的num,全局中只能出現一個num,如果出現了值的改變,大家一起變
num = 666
def fn2():
print(num) # 666
fn1()
fn2()
三 nonlocal關鍵字
# 作用:將局部的變量提升為嵌套局部變量# 1.必須有同名嵌套局部變量,就是統一嵌套局部與局部的同名變量# ? ? ? -- 如果局部想改變嵌套局部變量的值(發生地址的變化),可以用nonlocal聲明該變量?def outer(): ? ?num = 888 ? ?def inner(): ? ? ? ?nonlocal num ? ? ? ?num = 666 ? ? ? ?print(num) ?# 666 ? ?inner() ? ?print(num) ?# 666outer()
四 閉包
1.定義:被函數包裹的函數 - 定義在函數內部的函數
2.
閉包的應用場景# 1.閉包中使用的變量可以被外層函數所傳遞 - 外層函數可以為閉包傳遞參數
# 2.延遲執行
五 裝飾器
1.裝飾器:滿足開放封閉原則的一個閉包應用
2.開放封閉原則:在不修改源代碼與調用方式的情況下為函數添加新功能
3.裝飾器公式:
def outer(func): def inner(*args, **kwargs): pass res = func(*args, **kwargs) pass return res return inner
@outerdef fn(): pass
4.例子:
# @outer語法來調用outer,規定傳入被裝飾的函數對象,所以參數固定為一個,接受被裝飾的函數對象
def outer(func):
# 不能確定被裝飾的函數的參數:來者不拒,用可邊長來接受
def inner(*args, **kwargs):
pass # 新功能位
res = func(*args, **kwargs) # 解壓帶給原功能
pass # 新功能位
return res
return inner
# 使用裝飾器(outer),得到新功能(inner)
# 用被裝飾的函數名去接受裝飾器的執行結果,調用裝飾器時傳入被裝飾的函數對象
@outer # fn = outer(fn) = inner
def fn(): pass
# 表面感覺調用的是原函數,本質調用的是閉包(inner),使用fn調用和fn定義及inner需要參數統一
fn()
Python脫產8期 Day014 2019/4/28
一 帶參裝飾器 1.通常,裝飾器為被裝飾的函數添加新功能,需要外界的參數 # -- outer參數固定一個,就是func # -- inner參數固定同被裝飾的函數,也不能添加新參數?# -- 可以借 ...
Python脫產8期 Day12 2019/4/26
一 函數默認值的細節 1.如果函數的默認參數的默認值為變量,在所屬函數定義階段一執行就被確定為當時變量存放的值 例: a = 100def fn(num=a): print(num) # 100a = ...
Python脫產8期 Day10 2019/4/24
一 函數 1.定義:完成 特定 功能的代碼塊,作為一個整體,對其進行特定的命名,該名字就代表函數>>工具. 2.函數的優點:1.避免代碼的冗余:2.讓程序結構代碼更加清晰:3.讓代碼更加具 ...
Python脫產8期 Day03 2019/4/15
一 變量的命名規范 1.只能由 字母, 數字,? _, 組成. 2. 不能以數字開頭 3.避免與系統關鍵字重名:重名不會報錯,但系統的功能就被自定義的功能屏蔽掉了(嚴重不建議這樣來做) 4.以_開頭的 ...
Python脫產8期 Day11 2019/4/25
一 字符串比較 1.字符串比較:字符串對應的ascii進行比較 2.多個字符的字符串進行比較:從前往后逐個字符進行比較,一旦哪個位置的字符出現了大小關系就結束比較. 二 形參與實參 1.參數介紹: 函 ...
Python脫產8期 Day09 2019/4/23
內存管理 一.引用計數:垃圾回收機制的依據 1.變量的值被引用,該值的引用計數 +12.變量的值被解綁,該值的引用計數 -13.引用計數為0時就會被垃圾回收機制回收 二.引用計數會出現循環引用問題:相 ...
Python脫產8期 Day08 2019/4/22
一.三種字符串 1.普通字符串:u'以字符作為輸出單位‘? #print(u‘abc’)#用于顯示 2.二進制字符串:b'以字節作為輸出單位’#用于傳輸 3.原義字符串:r‘以字符作為輸出單位,原樣輸 ...
Python脫產8期 Day07 2019/4/19
一 數據類型的相互轉化 1.哪些類型可以轉換為數字類型 2.數字轉換為字符串 print(str(10)) 3.字符串與列表相互轉換 1.字符串轉化為列表:list(字符串) 2.列表轉換為字符串:' ...
Python脫產8期 Day06 2019/4/18
一 深淺拷貝 例:ls = [1, 'abc', [10]] 1.值拷貝:s1 = ls? ? # ls1直接將ls中存放的地址拿過來,>ls內部的值發生任何變化,ls1都會隨之變化. 2.淺拷 ...
隨機推薦
a primary example for Functional programming in javascript
background In pursuit of a real-world application, let’s say we need an e-commerce web applicationfo ...
【LeetCode】1. Two Sum
題目: Given an array of integers, return?indices?of the two numbers such that they add up to a specifi ...
mysqlroot passwd
grant all on *.* to 'root'@'192.168.0.%' identified by 'bloablabar'; 更改用戶密碼: update user set passwor ...
Linux查看用戶登陸歷史記錄
last 命令: 功能說明:列出目前與過去登入系統的用戶相關信息. 語 法:last [-adRx][-f ][-n ][帳號名稱-][終端機編號-] 補充說明:單獨執行last指令,它會讀取位于/v ...
從零開始學習jQuery (十一) 實戰表單驗證與自動完成提示插件
一.摘要 本系列文章將帶您進入jQuery的精彩世界, 其中有很多作者具體的使用經驗和解決方案,? 即使你會使用jQuery也能在閱讀中發現些許秘籍. 本文是介紹兩個最常用的jQuery插件. 分別用 ...
在cygwin下編譯c語言
#include int main (void) { printf("Hello World!\n"); ; } 1.保存到cygwin工作目錄下 ...
HD2 Tmobile 重新分區代碼(使用clk 1.6.5 de)
fastboot oem part-resize misc: fastboot oem part-resize recovery: fastboot oem part-resize boot: fas ...
5個常常被大家忽略的Python小技巧
下面我挑選出的這幾個技巧常常會被人們忽略,但它們在日常編程中能真正的給我們帶來不少幫助. 1. 字典推導(Dictionary comprehensions)和集合推導(Set comprehensi ...
IE8兼容問題
最近做的網站,需要兼容IE8,在這里記錄一下,碰到的問題,方便以后查看補充 1.CSS選擇器nth-child 不兼容 ul li:nth-child(2){ background-image: ur ...
【30集iCore3_ADP出廠源代碼(ARM部分)講解視頻】30-6底層驅動之多路開關選擇器
視頻簡介:該視頻介紹iCore3應用開發平臺中多路開關選擇器的應用,多路開關選擇器的硬件電路連接以及軟件實現的方法. 源視頻包下載地址:鏈接:http://pan.baidu.com/s/1geQ4W ...
總結
以上是生活随笔為你收集整理的python速成要多久2019-8-28_Python脱产8期 Day13 2019/4/28的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程设计大学ppt_Pyth
- 下一篇: websocket python爬虫_p