簡體   English   中英

在 python 中縮進 function 調用的正確方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM