我有一个参数名很长的函数,我该如何缩进? 例如,
ret = foo(
first_argument=a,
i_am_a_very_very_very_long_function_paramter_name=the_name_is_too_long_fit_in_80_chars_line)
我不能像在 IF 条件下那样使用 \ 来分隔它们。我能想到的唯一方法是将 the_name_is_too_long_fit_in_80_chars_line 命名为一个较短的名称,如下所示:
b = the_name_is_too_long_fit_in_80_chars_line
ret = foo(
first_argument=a,
i_am_a_very_very_very_long_function_paramter_name=b)
请您参考如下方法:
✓ Emerson,您可以为位置参数创建一个名为 args 的列表,为关键字参数创建一个名为 kwargs 的字典,并使用 Python 的打包、解包 概念以发送和接收参数。
Please comment if this solution doesn't fulfill your need.
下面是您可以尝试的示例代码:
def foo(*args, **kwargs):
long_name = kwargs["long_name"]; # keyword argument (1st)
v_long_name = kwargs["v_long_name"]; # keyword argument (2nd)
fname = kwargs["fname"]; # keyword argument (3rd)
a = kwargs["a"]; # keyword argument (4th)
farg = args[0]; # positional argument (1st)
sarg = args[1]; # positional argument (2nd)
return fname
✓ 然后准备args 和kwargs:
my_long_name = """Rogert Rendrick
Jemen Cartel
Neuron""";
firstname = "Rishikesh";
first_argument = 100;
second_argument = 200;
the_name_is_too_long_fit_in_80_chars_line = """80
lines of
...
setentences""";
the_second_name_is_too_long_fit_in_90_chars_line = """This
is
my
own
...
...
90
lines
"""
kwargs = {};
kwargs["long_name"] = my_long_name;
kwargs["v_long_name"] =
the_name_is_too_long_fit_in_80_chars_line;
kwargs["fname"] = firstname;
kwargs ["a"] = the_second_name_is_too_long_fit_in_90_chars_line
args = [first_argument, second_argument]
✓ 最后,您可以使用以下语法调用。
ret = foo(*args, **kwargs);
print(ret); # Rishikesh
✓ 以下调用也有效。
ret = foo(12, *args, **kwargs)
ret = foo(*args, lastname="Agrawani", **kwargs)
ret = foo(67, 112, *args, lastname="Agrawani", **kwargs)
