Python 当函数只有1条if语句时,函数是否需要else/elif?
这两个函数在调用时似乎返回相同的值。但是,我想知道数字2在某些情况下是否会引起错误?这样做是不好的做法吗 第一名:Python 当函数只有1条if语句时,函数是否需要else/elif?,python,Python,这两个函数在调用时似乎返回相同的值。但是,我想知道数字2在某些情况下是否会引起错误?这样做是不好的做法吗 第一名: def not_sum_to_ten(num1, num2): if num1 + num2 != 10: return True else: return False def not_sum_to_ten(num1, num2): if num1 + num2 != 10: return True return False 第二名: d
def not_sum_to_ten(num1, num2):
if num1 + num2 != 10:
return True
else:
return False
def not_sum_to_ten(num1, num2):
if num1 + num2 != 10:
return True
return False
第二名:
def not_sum_to_ten(num1, num2):
if num1 + num2 != 10:
return True
else:
return False
def not_sum_to_ten(num1, num2):
if num1 + num2 != 10:
return True
return False
谢谢分享你的知识 您也不需要
if
语句,只需返回的结果即可=代码>操作员:
def not_sum_to_ten(num1, num2):
return num1 + num2 != 10
关于原来的问题,这两个功能是等价的。但是,第二种形式更简洁,效率略高,因为它不需要解释器加载函数的默认返回值,即None
。您可以使用并检查字节码来反汇编函数对象:
2 0 LOAD_FAST 0 (num1)
2 LOAD_FAST 1 (num2)
4 BINARY_ADD
6 LOAD_CONST 1 (10)
8 COMPARE_OP 3 (!=)
10 POP_JUMP_IF_FALSE 16
3 12 LOAD_CONST 2 (True)
14 RETURN_VALUE
5 >> 16 LOAD_CONST 3 (False)
18 RETURN_VALUE
20 LOAD_CONST 0 (None)
22 RETURN_VALUE
vs
您也不需要if
语句,只需返回的结果即可=代码>操作员:
def not_sum_to_ten(num1, num2):
return num1 + num2 != 10
关于原来的问题,这两个功能是等价的。但是,第二种形式更简洁,效率略高,因为它不需要解释器加载函数的默认返回值,即None
。您可以使用并检查字节码来反汇编函数对象:
2 0 LOAD_FAST 0 (num1)
2 LOAD_FAST 1 (num2)
4 BINARY_ADD
6 LOAD_CONST 1 (10)
8 COMPARE_OP 3 (!=)
10 POP_JUMP_IF_FALSE 16
3 12 LOAD_CONST 2 (True)
14 RETURN_VALUE
5 >> 16 LOAD_CONST 3 (False)
18 RETURN_VALUE
20 LOAD_CONST 0 (None)
22 RETURN_VALUE
vs
这两个函数的作用完全相同。实际上,如果不需要,最好不要使用elif。这两个函数的作用完全相同。实际上,如果不需要使用elif,那么不使用它是一种很好的做法。第二种方法实际上更具可读性,而且(可以说)更具pythonic。当编写可以很早做出决策的函数时,这种方法非常有用,如:
def get_data(user, token):
if not verify(user, token):
return AuthException()
// Do actual fetching
这使得添加另一个else
非常容易理解。关于早期回报。第二种方法实际上更具可读性,而且(可以说)更具python风格。当编写可以很早做出决策的函数时,这种方法非常有用,如:
def get_data(user, token):
if not verify(user, token):
return AuthException()
// Do actual fetching
这使得添加另一个else
非常容易理解。关于早期返回。两者都是相同的,不会产生错误,我认为数字2更接近最佳做法是返回结果,如@eugene_yarmash所说:)在这样一个简单的情况下,这很简单,但在更复杂的函数中,在我看来,最好有一个“else”对应一个“if”,因为很容易忘记涵盖所有案例。特别是,在关键的应用程序开发中,您甚至可以找到“else”,里面只有一条注释,只是为了满足代码检查工具的要求@谢谢,我觉得这很有道理。我想知道,出于这个原因,使用else语句只是为了养成习惯是否也更好。这是一个意见问题,真的(因此从技术上讲,这是一个离题的问题)。我更喜欢数字2的样式,但我会更改它,以便您在比较中使用=
(并且明显地切换return
语句)。我只是觉得检查事物是否相等比检查它们是否不相等更自然。两者都是相同的,不会产生错误,我认为数字2更接近。最佳做法是返回结果,如@eugene_yarmash所说:)在这样一个简单的情况下,这很简单,但在我看来,在更复杂的函数中,最好将“else”对应于“if”,因为很容易忘记涵盖所有情况。特别是,在关键的应用程序开发中,您甚至可以找到“else”,里面只有一条注释,只是为了满足代码检查工具的要求@谢谢,我觉得这很有道理。我想知道,出于这个原因,使用else语句只是为了养成习惯是否也更好。这是一个意见问题,真的(因此从技术上讲,这是一个离题的问题)。我更喜欢数字2的样式,但我会更改它,以便您在比较中使用=
(并且明显地切换return
语句)。我只是觉得检查事物是否相等比不相等更自然。酷,这些数字是什么意思?我几天前才开始学习Python。来自Ruby使得大多数概念都很容易理解。酷,这些数字是什么意思?我几天前才开始学习Python。来自Ruby使得掌握大多数概念变得非常容易。