我有一个函数,我想根据模式采取不同的形式。我应该将定义包含在if语句中还是应该将if放在定义中?
# 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
我在过去做过这两件事,我的静态代码分析工具似乎没有抱怨。所以我想知道是否有一个Python的建议?
编辑:从目前的评论来看,这两种情况似乎都可以接受。这取决于用例。如果模式是恒定的,则首选情况1。如果不是,那么第二种情况。
EDIT2:这个问题实际上是在我写函数的时候产生的。它将输入模式作为输入,并根据模式执行类似的操作,但它使用单独在函数中为这些操作定义的不同子函数。由于子函数在函数运行期间保持不变,情况1似乎更合适。
编辑3:更正:在过去,我认为PyLint对案例1并不满意。这些天来,我使用了PyCharm,这似乎并没有表明案例1有任何问题。
您的函数行为不应依赖于外部值,因此我建议使用第一个示例:
取决于你想用它做什么。它们都可以以有用的方式使用。比较两个示例:
一。
对:
2。
当您希望在代码运行时在模式之间切换时,这些示例中的第一个是最好的。第二个是最好的,如果你只是想一个或另一个。第一个函数总是给你答案15,因为模式在运行时会改变。但是,第二个函数将根据您首先将模式设置为什么,为您提供35或-15的输出。
1/2:
二合一:(无意义)
相关问题 更多 >
编程相关推荐