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