本文我列出幾個python高階技巧:
1. contextmanager
寫python**的時候經常將一系列操作放在乙個語句塊中,python 2.5加入了with語法,實現上下文管理功能,這讓**的可讀性更強並且錯誤更少。最常見的例子就是open,如果不使用with,使用open會是這樣:
如果使用with,可以簡化為兩行:
在執行完縮排的**塊後會自動關閉檔案。建立上下文管理器實際就是建立乙個類,新增__enter__和__exit__方法。看看如何實現open的上下文管理功能:
自定義上下文管理器確實很方便,但是python標準庫還提供了更易用的上下文管理器工具模組contextlib,它是通過生成器實現的,我們不必再建立類以及__enter__和__exit__這兩個特殊的方法:
2. total_ordering 。對比自定義物件需要新增__lt__、__le__、__gt__、__ge__和__eq__等方法,如果使用total_ordering,只需要定義__eq__以及__lt__、__le__、__gt__、__ge__四種之一就可以了:
3. 有時候bug隱藏的太深,需要對上下文都有清晰的展示來幫助判斷。用pdb除錯不方便,用print不直觀。可以使用如下函式獲取當前呼叫棧:
4. inspect 。有時候我們想檢視一下物件的一些資訊或者做型別檢查,也就是自省(檢查某些事物以確定它是什麼、它知道什麼以及它能做什麼):
它在實際工作中還能有什麼意義,通過自省獲取方法的引數,從而設定快取的鍵,如 flask-cache( 和 douban-mc(
5. mixin模式 。它是什麼先看「mixin是什麼概念? 」 :
假如我們想通過python內建型別dict的方式來存放資料,編寫的類可以混入dictmixin就好了:
乾貨分享 新手學習Python快速高階路線
python是一種開放源 的指令碼程式語言,它可以用來開發各種程式,特別是近兩年人工智慧的火爆,讓python被更多的人所熟知。很多想要學習python的人都是零基礎,在學習上缺乏經驗,在python的學習中,以下五個問題是需要注意的,掌握了這5點,新手就可以快速從入門到高階了 1.程式設計思維 運...
iOStips,高階高階電子書乾貨分享!
iostips cfhipsterref ios高階 ios開發高階完整版 響應式程式設計 rxswift 設計模式 design patterns by tutorials v0.9.1 mac開發 advanced mac os x programming llvm llvm arm彙編 arm...
移動端跨平台開發乾貨分享
之前nativescript 1.0發布的時候,就打算談談移動端跨平台開發這個話題。正好,今天國內技術專家 吳多益 發表了一篇文章 聊聊移動端跨平台開發的各種技術 就這個話題,給大家分享了很多乾貨。為什麼大家對移動端跨平台開發總是孜孜不倦的追求,各種框架也是層出不窮呢?究其原因,還是由於純html在...