我目前有一个带有许多可选参数的函数,如下所示:
Scenario: Load the page
Given I pause the server # calls pause_server endpoint
And I go to the page # calls get_data endpoint
Then the data is 'Loading...'
Given I resume the server # calls resume_server endpoint
Then the data is '<data>'
但是实际上,它有20多个可选参数,即使有120个字符的行限制,它们也要占用5行。
是否有一种简化设计/使其更漂亮的设计模式?
P.S。我考虑过为此功能创建一个单独的配置文件,但是随后调用它会很烦人,因为大多数时候只使用一个或两个可选参数。
EDIT1:我不想使用def many_argument_function(required1, required2, optional1=1, optional2=2,
optional3=None, optional4="Test", optional5="g",
optional6=2, optional7=(0, 255, 0), optional8=0.5):
# Do stuff
,因为我想在我的IDE(PyCharm)中看到参数名称和默认值
答案 0 :(得分:3)
仅在每行列出一个参数并没有错。
def many_argument_function(
required1,
required2,
optional1=1,
optional2=2,
optional3=None,
optional4="Test",
optional5="g",
optional6=2,
optional7=(0, 255, 0),
optional8=0.5
):
"""
This function does some stuff.
"""
# Do stuff
PEP 8 endorses this style of indentation,虽然它自己的示例将多个参数放在一行上,但我发现,如果每个参数都在一行上,则扫描一大堆参数要容易得多。
答案 1 :(得分:0)
有可能您可以将相似的参数分组并将其存储到一个对象中,并使用这些值传递这些对象,而不用具有20个不同的参数。
例如,
def functionExample(Object colors, Object, numbers, Object traits, Object words);
上面的每个对象中的每个对象具有5个不同的值。