python类型检查函数_python函数问题,个人突然觉得C语言类型检查很有用

任务

首先请定义一个 square_of_sum 函数,它接受一个list,返回list中每个元素平方的和。

我的代码:

def square_of_sum(L):

sum = 0

for x in L:

sum = sum + x*x

return sum

print square_of_sum([1, 2, 3, 4, 5])

print square_of_sum([-5, 0, 5, 15, 25])

完美结果,正确了。但是引发我的思考。这里参数L应该就是一个普通变量,于是我把代码改成

def square_of_sum(L):

if L>=0:

return L

else:

return -L

print square_of_sum(-6)

结果为6,验证了我的想法。

于是我又仔细看了第一次函数的代码,发现从这里无法判断L是不是List,也有可能是set,tuple.

我于是又写了下面代码

def square_of_sum(L):

sum = 0

for x in L:

sum = sum + x*x

return sum

print square_of_sum((1, 2, 3, 4, 5))

print square_of_sum((-5, 0, 5, 15, 25))

结果正确

def square_of_sum(L):

sum = 0

for x in L:

sum = sum + x*x

return sum

print square_of_sum(set([1, 2, 3, 4, 5]))

print square_of_sum(set([-5, 0, 5, 15, 25]))

结果正确

所以我明白了,刚才为了完成任务的函数代码,参数其实可以为3个。可以从函数块代码看出来(只能从这看出来函数参数的类型)

这里只说要List为参数,但是多了2个类型的参数。

假如我写了一个函数只能接受一个类型的参数,接受其它类型的参数返回结果就不是预期的了。刚好这个函数也可以接受其它参数,但是代码中不会报错,这样程序就会出现问题啊,所以我觉得C语言类型检查是很用的。


版权声明:本文为weixin_42202716原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。