Skip to main content
 首页 » 编程设计

python之如果函数调用在 python2.x/3.x 中太长,如何缩进

2025年05月04日9mfryf

我有一个参数名很长的函数,我该如何缩进? 例如,

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)