在上面的代码片段中没什么大不了的,但是请想象一个具有更多参数和更多代码行的函数。然后,您决定将
data参数重命名为,
yadda但错过了函数主体中使用该参数的位置之一…现在
data是指全局变量,您开始有怪异的行为-
NameError如果不这样做,您将拥有更明显的表现有一个全球的名字
data。
还要记住,在Python中,所有东西都是对象(包括模块,类和函数),因此对于函数,模块或类没有明显的命名空间。另一种情况是将函数导入
foo模块的顶部,然后在函数主体中的某个位置使用它。然后,在函数中添加一个新参数,并将其命名为-
bad lucky-
foo。
最后,内置函数和类型也位于相同的名称空间中,并且可以以相同的方式进行阴影处理。
如果您的功能简短,命名合理且单元测试覆盖面不错,那么这些都不是什么大问题,但是好吧,有时候您必须维护的代码不够完美,并被警告可能存在的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)