我打算在這裏使用argparse作爲示例,但我認爲它適用於很多事情。考慮:應該如何設計長時間函數調用的代碼?
parser = argparse.ArgumentParser(description="This is a description of how this program works.")
subparsers = parser.add_subparsers(title="subcommands")
parser_sub1 = subparsers.add_parser("sub1",
description="subcommand 1 does something something something")
parser_sub1.add_argument("arg1",
help="Arg1 does somethign something something.")
等等20多條醜陋的線。
add_argument特別是add_parser行很長,主要是因爲幫助/描述字符串。但我看不出有什麼明顯的辦法來乾淨地縮短它們。正如你所看到的,以通常的方式縮進第二行只能獲得幾個字符。將字符串分割成多行會很快變得笨拙。
我遇到了這個問題,同時運行一些代碼通過-m pep8,它抱怨幾乎每個add_argument行都是> 80個字符。根本問題似乎是,直到開放括號的部分本身就太長了,以致於後來適配字符串,即使在參數之間有一個斷開和縮進。有幾個方法我能想到的解決這個問題:
- 現場有很長的線,而忽略PEP8
- 下縮進的連續行和忽略PEP8
- 用非常短的變量名保存字符(如
ps1 = parser.add_subparsers(whatever)
- 別名我可以節省更多的(例如,
psaa = parser_sub1.add_argument
每個塊) - 讓一堆字典文字,並將其解壓到有**(但我的一個發現字典文字一個痛苦的函數調用與)
- 從外部文件中讀取函數調用參數,格式不太尷尬,可能是YAML,然後解壓縮(但不知道代碼在做什麼而不必引用另一個文件)
- ...某事其他?
是否有一種已知的有效方法來處理冗長的函數參數,當自然寫入時,對80個字符約定卡住?
我會建議拆分長行。 –
與大多數語言不同,Python有一個權威的風格指南,可以說明這個問題。動議重新提交。 – msw