飄逸的python inspect誰呼叫了我

2021-07-03 23:20:00 字數 523 閱讀 2839

當程式出現詭異的bug時,我們需要層層去跟蹤,尤其是要理清順序。

這時如果有個清晰的呼叫脈絡除錯就容易多了。

利用inspect模組的getframeinfo方法來實現這需求。

上**感受下。

[python]view plain

copy

import

inspect  

deffoo():  

who = inspect.getframeinfo(inspect.currentframe().f_back)[2

]  print

'{} call me'

.format(who)  

defa():  

foo()  

defb():  

foo()  

a()  

b()  

a()  

結果輸出:

a call me

b call me

a call me

飄逸的python yield簡明教程

發現還有非常多人對yield不理解,雲裡霧裡,於是試著用文字表述.僅僅要函式含有yield語句,它就返回乙個生成器.所以我們與其把其看成函式定義,不如看作是生成器定義.函式用return返回,而生成器用yield返回.接下來是yield的行為.比方def html yield header for ...

技巧 列舉子集的飄逸寫法

設s表示乙個01狀態集,那麼它的所有非空子集x可以通過以下 列舉。for int x s x x x 1 s 簡單說明下原理 證明以後補上?x x 1 s實際上是把s中的0全部忽略,並不斷減1的結果,比如s 1011,則x分別為 1011,1010,1001,1000,0011,0010,0001。...

飄逸的python 簡明gzip模組壓縮教程

分類 python 2013 07 22 07 55 109人閱讀收藏 舉報gzip 目錄 先看乙個略麻煩的做法 python view plain copy import stringio,gzip content life is short.i use python zbuf stringio....