调用这样的函数会被认为是不好的做法吗?

2024-04-16 10:55:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这个函数签名:

def foo(a=True, b=True, c=True, d=True, e=True):

考虑到所有传递的参数都应该是False,所以我决定用这些方法来调用这个函数:

^{2}$

但有些东西告诉我,这将是糟糕的Python风格。你怎么认为?在


Tags: 方法函数falsetrue参数foo风格def
3条回答

如果读起来很难,那就是不好的风格。在

请记住,代码的读写次数要比写的多。在

你的代码应该解释清楚并且易于阅读。Style Guide for Python给出了一个有助于回答您的问题的示例:

Use ''.startswith() and ''.endswith() instead of string slicing to check for prefixes or suffixes.

startswith() and endswith() are cleaner and less error prone. For

example:

    Yes: if foo.startswith('bar'):

    No:  if foo[:3] == 'bar':

我喜欢使用默认值遵循80-20规则。如果一个函数有一个参数的默认值,而我选择使用另一个值,我需要在调用中清楚地表明这一点,因为这是一个重要的信息。在

如果你真的要“违反”五个默认参数,我会在调用中显式地显示这一点,让读者明白。i、 例如,我会按名称显式列出每个参数,并指出错误。在

虽然你写的代码应该可以工作,但它是分散注意力的,而且有人会专注于弄清楚你到底在做什么,而不是意识到重要的一点——你正在进行一个非常特殊的调用,因为你没有接受任何默认设置。这不是拯救(电子)树木的地方。在

相关问题 更多 >