我有一个函数我想根据模式采取不同的形式。我应该在if语句中包含定义还是应该将if放入定义中?Python的定义内,如果功能块或反之亦然
# Case 1
if mode == 1:
def f(x):
return x + 5
else:
def f(x):
return x - 5
# Case 2
def f(x):
if mode == 1:
return x + 5
else:
return x - 5
我已经在过去和静态代码分析工具似乎没有抱怨。所以我想知道是否有Pythonic推荐?
编辑:从迄今为止的意见,这两种情况似乎可以接受的。这取决于用例。如果模式旨在保持不变,则优先考虑情况1。如果没有,那么情况2.
EDIT2:这个问题实际上出现了,因为我在写一个函数。它采用模式作为输入,取决于模式执行类似的操作,除了它使用单独定义在这些操作的函数内的不同子功能。由于子功能在功能运行期间保持不变,因此情况1似乎更合适。
EDIT3:更正:在过去,我相信这是pylint的,这是不舒服的情况1.这些天来,我用PyCharm和似乎没有标志没有任何问题与案例1
如果你1只检查一次条件。 – vaultah
第二种似乎更通用。例如,如果模式在某个点发生了变化,该怎么办?案例2仍然在这里工作,而案例1不会。 – arshajii
你打算如何使用该功能?你的两个例子给出不同的行为。在第一种情况下,你决定一次,然后你得到的功能就被修复了。在情况2中,每次调用函数时都要重新做出决定。 – BrenBarn