6.14 疑难解惑

疑问1:用户自定义函数的命名空间是怎么回事?

用户自定义函数拥有自己的命名空间。当用户定义一个函数后,Python会为这个新函数创建一个属于它自己的局部命名空间。

这个新的局部命名空间内包含该函数所有的参数与变量。因此,当用户在该函数内用到某一个参数或变量时,Python会先搜索该函数的局部命名空间。如果在该局部命名空间内找不到,Python就会到全局命名空间内进行搜索。

所谓全局命名空间,就是指该函数所在模块的命名空间。如果在全局命名空间内也找不到所要找的参数或变量时,Python就会继续搜索系统的内置命名空间。最后如果还是找不到,Python就会输出一个NameError异常。

疑问2:len()、count()和sum()三个计算函数有什么区别?

(1)len()函数返回的是对象的长度。例如len([1,2,3,4,5,6]),返回值是6。

(2)count()函数计算包含对象的个数。例如[1,2,2,2,2,6].count(2),返回值是4。

(3)sum()函数是做一个和运算。例如sum([1,2,3,4,5]),返回值是15。