python筆記

一些知識整理:

在flask中使用jsonify和json.dumps的區(qū)別

簡單聊聊Python中的wraps修飾器



本文轉載自很多地方守呜。

1. python中常用的四種數據結構(set, dict, list, tuple)是怎么使用的行剂?

列表(list):[ ]。有序,可更改(增加,刪除等)。
獲取方法:下標或者切片操作椰弊。
更改方法:直接賦值。
刪除:末尾刪除隙券,L.pop(元素)男应。刪除指定位置,L.pop(位置)娱仔。
增加:末尾增加沐飘,L.append(元素)。指定位置插入牲迫,L.insert(位置,元素)耐朴。

元組(tuple):( )。有序盹憎,不可變筛峭。賦值時候決定所有元素。

詞典(dict):{ }陪每。無序影晓,可更改¢莺蹋空間換時間挂签,提升效率。

集合(set):{ }盼产。元素不能重復饵婆。無序,可更改戏售。

PYTHON常見數據結構整理


2. python中函數式編程有哪幾種常用方法以及使用場景是什么侨核?

函數式編程關注數據的映射痰憎,命令式編程關注解決問題的步驟推沸。

用lambda創(chuàng)建匿名函數。匿名:沒有名字筑累。

什么是函數式編程思維踪区?

函數式編程--廖雪峰的官方網站


3. python變量的作用域遵循怎樣的規(guī)范落萎?

遵循LEGB原則:

L(local)局部作用域诲侮。
E(Enclosing)閉包函數外的函數中血久。
G(Global)全局作用域。
B(Built-in)內建作用域轴总。

python中除了def/lambda/class外,其他如if/elif/else try/except for/while并不能改變其作用域博个。

閉包:如果在一個內部函數里怀樟,對在外部函數內(但不是在全局作用域)的變量進行引用,那么內部函數就被認為是閉包(closure)盆佣。


4. python關鍵字參數和位置參數的使用往堡?

python的位置參數、默認參數共耍、關鍵字參數虑灰、可變參數區(qū)別

位置參數:調用函數時根據函數定義的參數位置來傳遞函數。
? ? ? ? ? ? ? ? ? 必須一一對應痹兜,缺失一個都不行穆咐。

關鍵字參數:調用函數時通過“鍵-值”形式加以指定∽中瘢可以使函數更加清晰对湃、容易使用,同時清除了參數的順序需求遗淳。
當存在位置參數時拍柒,位置參數必須在關鍵字參數前面,但關鍵字之間不存在先后順序屈暗。

默認參數:定義函數時拆讯,為參數提供默認值,調用函數時可傳可不傳該默認參數的值养叛。

可變參數:定義函數時种呐,有時并不確定調用的時候需要傳遞多少個參數(不傳參也可以)。此時一铅,可用包裹(packing)位置參數陕贮,或packing關鍵字參數,來進行參數傳遞潘飘。

def func(*args):
? ? ? ...

func()
func(a)
func(a,b,c)

傳進的所有參數會被args參數收集肮之,它會根據傳進參數的位置合并為一個元組(turple)掉缺,args是元組類型,即包裹位置傳遞戈擒。

def func(**kargs):
? ? ? ...

func(a=1)
func(a=1,b=2,c=3)



5.? @classmethod和@staticmethod的差異是什么眶明,以及綁定方法和動態(tài)綁定函數的使用。

為何使用還需加深理解筐高。

一般情況下搜囱,需要使用某個類的方法,需要先實例化一個對象再調用方法柑土。

而使用@classmethod和@staticmethod蜀肘,可以不需要實例化,直接類名.方法名()來調用稽屏。

這有利于組織代碼扮宠,把某些應該屬于某個類的函數放到那個類里去,同時有利于命名空間的整潔狐榔。

有時坛增,僅需要和類交互而不是與實例交互。

而這兩種方法的區(qū)別是什么呢薄腻?

@staticmethod不需要表示自身對象的self和自身類的cls參數收捣,就跟使用函數一樣。

@classmethod也不需要self參數庵楷,但第一個參數需要是表示自身類的cls參數罢艾。

@classmethod是一個函數修飾符,它表示接下來是一個類方法尽纽,而對于我們平常見到的則叫做實例方法昆婿。類方法的第一個參數cls,而實例方法第一個參數是self蜓斧,表示該類的一個實例仓蛆。

普通對象方法至少需要一個self參數,代表類對象實例挎春。

類方法有類變量cls傳入看疙,從而可以用cls做一些相關的處理。并且有子類繼承時直奋,調用該類方法時能庆,傳入的類變量cls是子類,而非父類脚线。

@staticmethod和@classmethod的用法


6. 迭代器和生成器的使用以及協程的使用

python高級特性:減少代碼量搁胆。

切片:可以用于列表,元組,字符串渠旁,操作后類型不變攀例。切片可以替換一些循環(huán)操作。

迭代:任何可迭代對象對可作用于for循環(huán)顾腊。

判斷是否為可迭代對象

要對list實現類似下標循環(huán)粤铭,利用enumerate將一個list變成索引-元素對。

enumerate用法

dict迭代:默認情況下dict迭代的key杂靶。

dict的存儲不是按照list的方式順序排列梆惯,所以迭代出的結果順序很可能不一樣。

如果要迭代value吗垮,可以用for value in d.itervalues()垛吗;如果同時迭代key和value,可以用 for k,v in d.iteritems()烁登。

生成器(Generator):一邊循環(huán)一邊計算的機制职烧。在循環(huán)的過程中不斷推算出后續(xù)元素,不必創(chuàng)建完整的list防泵,從而節(jié)省大量的空間。

yield和next()蝗敢。


7. AOP中裝飾器和OOP中裝飾器對象如何區(qū)分捷泞,如何使用?

裝飾器:設計模式寿谴。經常用于有切面需求的場景锁右,比如插入日志、性能測試讶泰、事務處理等咏瑟。

@語法。返回的是函數痪署。原來的函數func還存在码泞,只不過同名變量func指向了新的函數,調用func()將執(zhí)行新函數狼犯。

什么是面向切面編程AOP余寥?

作者:知乎用戶

鏈接:https://www.zhihu.com/question/24863332/answer/48376158

來源:知乎

著作權歸作者所有。商業(yè)轉載請聯系作者獲得授權悯森,非商業(yè)轉載請注明出處宋舷。

面向切面編程(AOP是Aspect Oriented Program的首字母縮寫) ,我們知道瓢姻,面向對象的特點是繼承祝蝠、多態(tài)和封裝。而封裝就要求將功能分散到不同的對象中去,這在軟件設計中往往稱為職責分配绎狭。實際上也就是說细溅,讓不同的類設計不同的方法。這樣代碼就分散到一個個的類中去了坟岔。這樣做的好處是降低了代碼的復雜程度谒兄,使類可重用。

但是人們也發(fā)現社付,在分散代碼的同時承疲,也增加了代碼的重復性。什么意思呢鸥咖?比如說燕鸽,我們在兩個類中,可能都需要在每個方法中做日志啼辣。按面向對象的設計方法啊研,我們就必須在兩個類的方法中都加入日志的內容。也許他們是完全相同的鸥拧,但就是因為面向對象的設計讓類與類之間無法聯系党远,而不能將這些重復的代碼統(tǒng)一起來。

也許有人會說富弦,那好辦啊沟娱,我們可以將這段代碼寫在一個獨立的類獨立的方法里,然后再在這兩個類中調用腕柜。但是济似,這樣一來,這兩個類跟我們上面提到的獨立的類就有耦合了盏缤,它的改變會影響這兩個類砰蠢。那么,有沒有什么辦法唉铜,能讓我們在需要的時候台舱,隨意地加入代碼呢?這種在運行時潭流,動態(tài)地將代碼切入到類的指定方法柿赊、指定位置上的編程思想就是面向切面的編程。

一般而言幻枉,我們管切入到指定類指定方法的代碼片段稱為切面碰声,而切入到哪些類、哪些方法則叫切入點熬甫。有了AOP胰挑,我們就可以把幾個類共有的代碼,抽取到一個切片中,等到需要時再切入對象中去瞻颂,從而改變其原有的行為豺谈。

這樣看來,AOP其實只是OOP的補充而已贡这。OOP從橫向上區(qū)分出一個個的類來茬末,而AOP則從縱向上向對象中加入特定的代碼。有了AOP盖矫,OOP變得立體了丽惭。如果加上時間維度,AOP使OOP由原來的二維變?yōu)槿S了辈双,由平面變成立體了责掏。從技術上來說,AOP基本上是通過代理機制實現的湃望。

AOP在編程歷史上可以說是里程碑式的换衬,對OOP編程是一種十分有益的補充。

OOP(object-oriented programming)面向對象編程证芭,特點為繼承瞳浦、多態(tài)、封裝废士。

其中叫潦,封裝即將功能分散到不同的對象中去,即讓不同的類設計不同的方法湃密。不難理解,不同類之間有時會存在一些類似的功能(比如日志)四敞,即封裝分散的同時泛源,增加了代碼的重復性。但是忿危,如果倆個類共同使用一個方法达箍,則增加了耦合性,不符合設計理念铺厨。

什么方法可以讓我們在需要時缎玫,隨意地加入代碼呢?

即解滓,面向切面編程(aspect-oriented programming):在運行時赃磨,動態(tài)地將代碼切入到類的指定方法,指定位置上的編程思想洼裤。

12步輕松搞定python裝飾器


8. python中新式類和老式類的差異


序列:字符串邻辉、列表、元組。
訪問模式:每一個元素可以通過一個指定的偏移量得到值骇。多個元素可以通過切片操作一次得到莹菱。
字符串的實際內容是單引號或者雙引號之間的內容,不包括引號本身吱瘩。



__future__ : 舊版本體驗新特性

字符串前加r道伟,防止字符串轉義。

字符串也可以做為list使碾。

__init__() 構造器方法:創(chuàng)建實例對象蜜徽。
實例對象作為第一個參數(self)被傳遞進去。調用類時部逮,傳進的任何參數都交給了__init__()娜汁。
在__init__方法內部,可以把各種屬性綁定到self兄朋,因為self指向創(chuàng)建的實例本身掐禁。

有關None:Python 里 and、or 的計算規(guī)則是怎樣的颅和?


and or 操作符

作用域

__xxx__:特殊變量傅事,可被直接引用,但是有特殊用途峡扩。
_xxx和__xxx:非公開(private)

python的可變參數和關鍵字參數(*args **kw)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末蹭越,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子教届,更是在濱河造成了極大的恐慌响鹃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件案训,死亡現場離奇詭異买置,居然都是意外死亡,警方通過查閱死者的電腦和手機强霎,發(fā)現死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門忿项,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人城舞,你說我怎么就攤上這事轩触。” “怎么了家夺?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵脱柱,是天一觀的道長。 經常有香客問我拉馋,道長褐捻,這世上最難降的妖魔是什么掸茅? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮柠逞,結果婚禮上昧狮,老公的妹妹穿的比我還像新娘。我一直安慰自己板壮,他們只是感情好逗鸣,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绰精,像睡著了一般撒璧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笨使,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天卿樱,我揣著相機與錄音,去河邊找鬼硫椰。 笑死繁调,一個胖子當著我的面吹牛,可吹牛的內容都是我干的靶草。 我是一名探鬼主播蹄胰,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奕翔!你這毒婦竟也來了裕寨?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤派继,失蹤者是張志新(化名)和其女友劉穎宾袜,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體驾窟,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡庆猫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了纫普。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阅悍。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡好渠,死狀恐怖昨稼,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情拳锚,我是刑警寧澤假栓,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站霍掺,受9級特大地震影響匾荆,放射性物質發(fā)生泄漏拌蜘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一牙丽、第九天 我趴在偏房一處隱蔽的房頂上張望简卧。 院中可真熱鬧,春花似錦烤芦、人聲如沸举娩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铜涉。三九已至,卻和暖如春遂唧,著一層夾襖步出監(jiān)牢的瞬間芙代,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工盖彭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纹烹,地道東北人。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓谬泌,卻偏偏與公主長得像滔韵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掌实,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容