python筆記 一些常用的小trick(一)

2021-10-07 15:56:42 字數 2070 閱讀 1493

假設你git clone了乙個函式庫,然後想要在某一段**中呼叫其中的某乙個函式,請問你要怎麼做呢?

這裡,我們來給出乙個這類函式的呼叫小trick。

其實方法也比較簡單,一種簡單粗暴的方法就是把這個函式的路徑加入到系統的python path中,但是這種操作是永續的,在更多情況下,我們只是想要臨時在某些指令碼中呼叫這個方法,在其他情況下,我們並不希望這個路徑加入到我們的系統python path中。

因此,我們可以在程式中通過下述**進行呼叫:

import sys

print

(sys.path)

# 列印python path,list格式,其元素即為庫函式路徑。

"your function file path"

)# 加入你的函式所在目錄

執行上述操作之後,目標路徑就被臨時加入到python path中了,之後你就可以輕鬆的進行呼叫了。

需要注意的是,如果你是複寫了已有的某個函式,那麼你需要將你的路徑insert到開頭的位置,否則它不會讀入你的函式,而是會讀入之前已有的函式。

cache方法也是python中常用的提高執行效率的常見方法,其主要思路為將函式與其輸入儲存到快取中,當需要重複呼叫時,直接讀取其之前執行的結果,而不需要再重新計算一邊。

因此,這算是一種比較暴力的動態規劃實現方法。但是,由於他是直接讀取的上一次的執行結果,當不同時刻執行結果會不相同時,絕對不能使用cache,另外,由於需要將結果一直儲存在快取中,所以對於非頻繁呼叫的密集計算型函式,也不建議使用cache。

下面,我們給出兩種cache的實現方法:

lru_cache

from functools import lru_cache

@lru_cache(

none

)def

factor

(n):

if n <=1:

return

1return n * factor(n-

1)

beaker

from beaker.cache import cachemanager

from beaker.util import parse_cache_config_options

cache_opts =

cache = cachemanager(

**parse_cache_config_options(cache_opts)

)@cache.cache(

'test'

, expire=

600)

deffactor

(n):

if n <=1:

return

1return n * factor(n-

1)

更詳細的使用方法可以參考兩者的官方說明文件,這裡不再展開。

tqdm函式庫為python中常用的一種進度條繪製方法。

from tqdm import tqdm

ans =

0with tqdm(

range(1

,101

), ncols=

100)

as t:

for i in t:

ans += i

print

(ans)

其中,tqdm的輸入為乙個list或者為乙個迭代器,且只有在輸入為list等已知總長度的情況下,可以正確顯示進度條,否則只會通過數字顯示已執行進度。

而tqdm的執行邏輯事實上是在每一次列印之後將當前位置指標重新退行,然後再上一行中覆蓋列印內容。因此,如果進度條長度過長,超過單行總長度或者在訓練中列印了新的內容時,回溯上一行就會失敗,無法回到上一次進度條的開始位置,故而導致進度條顯示異常。

因此,我個人建議使用ncols引數人為地去指定一下進度條的總長度。

另外,需要注意的是,我們上面使用了with的寫法,這是一種比較推薦的寫法,因為tqdm函式如果遇到強制終止程式等情況時,時常會出現一些bug,無法正常地完成回溯,而使用with方法可以很好的處理這部分的異常。

python筆記 一些常用的小trick(二)

2.生成器 3.儲存列印結果 4.參考文獻 裝飾器的概念有點類似於數學中的泛函,是函式的函式。其輸入引數為乙個方法,輸出為另乙個方法。熟練地使用裝飾器,我們可以更好地對函式進行模組化操作,減少重複 量。下面,我們來考察一下裝飾器的使用,具體包括以下內容 裝飾器的一般用法 向裝飾器中傳入額外引數 給出...

python 的一些筆記

1.模組的使用 在python中,模組內部使用的變數是通過字首 實現的。類似於 的變數是特殊變數,比如 author 2.類中的函式和普通的函式的不同點 類中的函式第乙個引數永遠是例項變數self,並且呼叫時不同傳遞該引數。3.在python中,類似於 的變數不是私有變數,私有變數是類似於 xx這樣...

更新一些常用的小軟體

這些都是平常用的一些小工具,怕丟失了 寫起來留個爪 tiny pdf 今天想找個工具把doc轉換成pdf,找了好幾個軟體,都不怎麼理想,最後看到這個260來k的小軟體,效果很好,使用 在控制面板中,開啟印表機與傳真,選定tiny pdf為預設印表機即可。然後開啟乙個word文件,直接列印,結果即為p...