在 python 中缩进函数调用的正确方法
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)
问题
是否有任何规则/指南应将这些变体中的哪些与多少参数一起使用?有区别
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",
)
根据 PEP8,行长应为 79 个字符。然后,你应该换行比这更长的行。
虽然这只是一个风格指南,而不是规则或要求。所以这真的取决于你。如果您使用 IDE,例如pycharm/atom/vscode。您可以设置行的最大长度并使用自动格式化来自动换行。 IMO,手动太麻烦了。
至于这些的指南,这里有一个:https://www.python.org/dev/peps/pep-0008/#indentation
对于您的具体情况,我建议使用:
httpd = Server(
("", conf.port),
Handler
)
并将 ("", conf.port) 放在自己的行上,以区别于 Handler。
嗯,缩进是 Python 独特的编程语言功能之一。但我不会说有任何正确或正确的方法来调用具有多个参数的函数。大多数时候我使用带参数的函数调用,如果参数超过 3 个,我会使用这种格式:
someValue = myFunction(
first_arg=0,
second_arg=5,
third_arg=10,
fourth_arg=15,
fifth_arg=20
)
或者我只使用普通的:
someValue = myFunction(first_arg=0)
但这完全取决于你。任何一种格式都可以,没有 'Pythonic' 方法可以做到这一点。
假设我像这样声明一些变量(我认为缩进太多):
httpd = Server(
(
"",
conf.port
),
Handler
)
我可以这样做,但它不是很可读:
httpd = Server(("", conf.port), Handler)
或者像这样(中间的方式):
httpd = Server(
("", conf.port),
Handler
)
有些人甚至这样做(我认为这是最糟糕的):
httpd = Server(
("",
conf.port),
Handler)
问题
是否有任何规则/指南应将这些变体中的哪些与多少参数一起使用?有区别
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",
)
根据 PEP8,行长应为 79 个字符。然后,你应该换行比这更长的行。
虽然这只是一个风格指南,而不是规则或要求。所以这真的取决于你。如果您使用 IDE,例如pycharm/atom/vscode。您可以设置行的最大长度并使用自动格式化来自动换行。 IMO,手动太麻烦了。
至于这些的指南,这里有一个:https://www.python.org/dev/peps/pep-0008/#indentation
对于您的具体情况,我建议使用:
httpd = Server(
("", conf.port),
Handler
)
并将 ("", conf.port) 放在自己的行上,以区别于 Handler。
嗯,缩进是 Python 独特的编程语言功能之一。但我不会说有任何正确或正确的方法来调用具有多个参数的函数。大多数时候我使用带参数的函数调用,如果参数超过 3 个,我会使用这种格式:
someValue = myFunction(
first_arg=0,
second_arg=5,
third_arg=10,
fourth_arg=15,
fifth_arg=20
)
或者我只使用普通的:
someValue = myFunction(first_arg=0)
但这完全取决于你。任何一种格式都可以,没有 'Pythonic' 方法可以做到这一点。