python基礎知識點總結

手寫一個完整的裝飾器模版html

# 用於修復被裝飾對象的名稱空間 from functools import wrape def wrapper(func):  @wraps(func) def inner(*args, **kwargs): # func執行以前的操做 res = func(*args, **kwargs) # func執行以後的操做 return res return inner

簡述面向對象三大特性及各自特色java

''' 封裝:將屬性和方法放在類的內部,經過類的實例化出對象,用對象訪問屬性或方法,隱藏功能的實現細節,可設置訪問權限 好處:提升了代碼的複用性,安全性,下降代碼的冗餘度 繼承:實現代碼的重用,也能夠理解爲讓類與類之間創建父子關係,使子類擁有父類的屬性和方法,並可衍生出本身獨有的屬性和方法。須要注意的是,在python中存在多繼承,這是其餘編程語言沒有的一個特性 好處:減小代碼的重用,提升代碼的可讀性,規範編程模式 多態:同一個方法,不一樣對象調用,實現的功能不同。python中的多態不像其餘編程語言,崇尚「鴨子類型」,即不用經過具體的繼承關係來約束其餘類,只要這些不一樣的類具備相同的方法名,利用統一的方式來調用 好處:增長代碼的靈活度,調用方法,不會影響到類的內部設計 '''

簡述解釋性語言和編譯性的區別python

''' - 解釋型:每次執行程序都要從新編譯,下降了執行效率,但提供相應的解釋器後,跨平臺比較容易,調試方便,好比說Python,JavaScript、C# - 編譯型:一次編譯,重複執行,執行效率相對較高,但因爲編譯成特定的機器碼,致使跨平臺性差,調試麻煩,好比C,C++,PHP 總結: 解釋型語言,執行速度慢、效率低;依靠解釋器、跨平臺性好 編譯型語言,執行速度快、效率高;依靠編譯器、跨平臺性較差 java語言(瞭解) 能夠說是編譯型,全部的java代碼都要編譯,不通過編譯啥也沒有; 也能夠說是解釋型,java代碼編譯後不能直接運行,在jvm上解釋運行 因爲java對於多種不一樣的操做系統有不一樣的jvm,因此java實現了真正意義上的跨平臺 '''

列舉你所知道的python2與python3之間的區別編程

# 參照https://www.cnblogs.com/zengyi1995/p/10736673.html # 參照https://www.cnblogs.com/xiaoyuanqujing/articles/11721989.html ''' 1.解釋器默認編碼 python2:ASCII python3:utf-8 2.str(字符串)的區別 python2:Unicode類型表示字符串序列,str類型表示字節序列 python3:str類型表示字符串序列,byte類型表示字節序列 3.輸入 python2:raw_input('請輸入用戶名:') python3:input('請輸入用戶名') # 等價於python2中的raw_input ps:python2中的input()必須指定數據類型,不然會拋異常 4.輸出 python2: print('hello', 'world') # 結果:('hello','world') print '你好' # 結果:你好 python3: print('hello', 'world') # 結果:hello world print('你好') # 結果:你好 5.數字的表示 python2:64位機器,範圍-2^63~2^63-1;超出這個範圍,自動轉換成long(長整型) python3:全部整型都是int,沒有long(長整型) 6.整除:1/2的結果 python2:0 只保留整數位 python3:0.5 保留全部內容 7.range/xrange python2: range:在內存中當即把全部的值建立 xrange:不會在內存中當即建立,邊循環邊建立 python3: range:不會在內存中當即建立,邊循環邊建立,等價於python2中的xrange 沒有xrange 8.dict(字典)的keys/values/items方法 python2:返回列表,可經過索引取值 python3:返回類,只能經過循環取值 9.新式類和經典類 python2:沒有繼承Object類的類是經典類,繼承了Object類的類是新式類 python3:默認全部類都繼承Object類,只有新式類,沒有經典類 ps: 新式類:廣度優先,遵循mro 經典類:深度優先,不遵循mro 10.global和nonlocal python2:使用關鍵字global聲明某個變量爲全局變量,但嵌套函數中,聲明某個變量爲非局部變量沒法實現 python3:除了global關鍵字,新增了關鍵字nonlocal,實現了嵌套函數中,聲明某個變量爲非局部變量 '''

什麼是匿名函數。匿名函數通常結合什麼一塊兒使用,請列舉幾個經常使用的安全

''' 不用顯式定義的函數,即沒有函數名的函數,經過lambda關鍵字表示。自己沒有任何意義,就是一個表達式,通常結合內置函數使用,好比max,min,sorted,map,reduce,filter ps: max(可迭代對象, key=函數對象):根據函數對象返回結果爲依據,返回可迭代對象中的最大值 min(可迭代對象, key=函數對象):根據函數對象返回結果爲依據,返回可迭代對象中的最小值 sorted(可迭代對象, [key=函數對象], [reverse=True]):根據函數對象返回的結果做爲依據(可選),對可迭代對象進行排序,默認爲升序,reverse=True表示結果爲降序(該參數可選) map(函數對象,可迭代對象):將可迭代對象中的元素依次經過函數對象修改後,依次映射到map對象中,經過轉換成容器類型的數據展現,只能轉換一次 reduce(函數對象, 可迭代對象, [初始值]):使用前,導包→from functools import reduce;每次從可迭代對象中獲取兩個元素進行累積計算,即reduce(func,[1,2,3]) 等價於 func(func(1,2),3)。若是求和,初始值默認爲0,求乘積時,初始值爲1(該參數可選) filter(函數對象, 可迭代對象)根據函數對象中的返回值是True仍是False決定保留仍是丟棄可迭代對象中的元素,若是該元素在函數對象中的結果爲True,則添加到filter對象中,經過轉換成容器類型數據展現,只能轉換一次 '''
相關文章
相關標籤/搜索