小技巧 Python中如何構建config系統

2022-06-22 07:33:08 字數 816 閱讀 3789

首先貼一段**:

parser = get_parser()

p = parser.parse_args()

if p.config is not none:

with open(p.config, 'r') as f:

default_arg = yaml.load(f)

key = vars(p).keys()

for k in default_arg.keys():

if k not in key:

print(f"wrong key: ")

assert k in key

parser.set_defaults(**default_arg)

幾個點,

p是乙個python庫裡面的argparse中的argumentparser類例項,他有他的類屬性和類屬性的值。那麼vars這個函式常常用於將乙個類例項轉成dict

我們可以很方便的寫乙個yaml,然後就用pyyaml庫直接讀取,也就是yaml.load

最後,p作為類例項,可以呼叫他的乙個類方法set_defaults,來給這個類例項的類屬性重新給付乙個新的預設default值。

最終形成的結果就是,在我們創造的引數系統中,存在如下的優先順序:

command line > configure > default

python中的小技巧

1.為了防止出現檔案未關閉所出現的錯誤,最好使用 with open predict.txt w as f 2.如果pycharm中無法使用快捷鍵複製貼上 file setting vim emulation 將對應快捷鍵後面的handler更改為ide 3.如果pycharm進入之後預設是iner...

python中的小技巧

1 python將字串型別list轉換成list python讀取了乙個list是字串形式的 11.23,23.34 想轉換成list型別 法一 import ast str list 11.23,23.34 list list ast.literal eval str list print typ...

python中requests小技巧

關於 python requests 在使用中,總結了一些小技巧把,記錄下。1 保持請求之間的cookies,我們可以這樣做。2 請求時,會加上headers,一般我們會寫成這樣 唯一不便的是之後的 每次都需要這麼寫,顯得臃腫,所以我們可以這樣 3 預設requests請求失敗後不會重試,但是我們跑...