[英]Correct way to indent function calls in python
假設我要聲明一些這樣的變量(我認為縮進太多了):
httpd = Server(
(
"",
conf.port
),
Handler
)
我可以這樣做,但它不是很可讀:
httpd = Server(("", conf.port), Handler)
或像這樣(兩者之間的方式):
httpd = Server(
("", conf.port),
Handler
)
有些人甚至這樣做(這是我認為最糟糕的):
httpd = Server(
("",
conf.port),
Handler)
是否有任何規則/指南應將這些變體中的哪些與 arguments 的數量一起使用? 之間有區別
var = function(with="with", many="many",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
argu="argu", ments="ments",
)
和
var = function(argu="argu", ments="ments", argu="argu", ments="ments", argu="argu", ments="ments",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
argu="argu", ments="ments", argu="argu", ments="ments", argu="argu",
)
至於這些的指南,這里有一個: https://www.python.org/dev/peps/pep-0008/#indentation
對於您的具體情況,我建議使用:
httpd = Server(
("", conf.port),
Handler
)
和 group ("", conf.port) 在自己的行上以將其與 Handler 區分開來。
嗯,縮進是 Python 的獨特編程語言功能之一。 但我不會說有任何正確或正確的方法來調用具有多個 arguments 的 function。 大多數時候我使用 function 和 arguments 調用,如果 arguments 超過 3,我會使用這種格式:
someValue = myFunction(
first_arg=0,
second_arg=5,
third_arg=10,
fourth_arg=15,
fifth_arg=20
)
或者我會使用普通的:
someValue = myFunction(first_arg=0)
但這完全取決於你。 任何一種格式都可以,並且沒有“Pythonic”的方式來做到這一點。
根據 PEP8,行長應為 79 個字符。 然后,你應該換行比這更長的行。
雖然這只是一個風格指南,而不是規則或要求。 所以這真的取決於你。 如果您使用 IDE,例如 pycharm/atom/vscode。 您可以設置行的最大長度並使用自動格式化來自動換行。 IMO,手動操作太乏味了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.