我想编写一个python函数my_sum
,用以下方式扩展python的内置sum
:
my_sum
,它的行为就像内置的sum
。你知道吗my_sum
,则返回值的总和。你知道吗所需输出:
my_sum([1, 2, 3]) # shall return 6 (similiar to built-in sum)
my_sum(1, 2, 3) # shall return 6 as well, (sum throws TypeError)
效果如下。你知道吗
def my_sum(*x):
try:
return sum(x) # sums multiple values
except TypeError:
return sum(*x) # sums sequence of values
这就是达到预期行为的方式吗?对我来说,代码看起来很奇怪。你知道吗
我认为它不是异常的用例,异常是针对异常的。如果将参数转换为列表并传递给加法器函数,请使用另一个函数。你知道吗
此外,输入的验证和格式化应该在代码的外部,而不是在final函数中。在最好的情况下,应该在使用此函数之前验证数据,并且您应该只使用
sum
函数来处理煮熟的数据。你知道吗这是一种方法:
我会有以下代码。你知道吗
它是脓性的。我认为至少需要进行一次检查,python的理念是“请求宽恕而不是许可”(解释为here),这基本上意味着对于标准控制流,使用try-except块是可以的。你知道吗
如果导入一个已建立的库是pythonic的,并且您可以并且愿意这样做,那么您也可以使用numpy.sum,如下所示:
根据这个定义,两者
返回
6
。你知道吗相关问题 更多 >
编程相关推荐