在外部作用域中定义阴影名称有多糟糕?

在外部作用域中定义阴影名称有多糟糕?,第1张

在外部作用域中定义阴影名称有多糟糕?

在上面的代码片段中没什么大不了的,但是请想象一个具有更多参数和更多代码行的函数。然后,您决定将

data
参数重命名为,
yadda
但错过了函数主体中使用该参数的位置之一…现在
data
是指全局变量,您开始有怪异的行为-
NameError
如果不这样做,您将拥有更明显的表现有一个全球的名字
data

还要记住,在Python中,所有东西都是对象(包括模块,类和函数),因此对于函数,模块或类没有明显的命名空间。另一种情况是将函数导入

foo
模块的顶部,然后在函数主体中的某个位置使用它。然后,在函数中添加一个新参数,并将其命名为-
bad lucky-
foo

最后,内置函数和类型也位于相同的名称空间中,并且可以以相同的方式进行阴影处理。

如果您的功能简短,命名合理且单元测试覆盖面不错,那么这些都不是什么大问题,但是好吧,有时候您必须维护的代码不够完美,并被警告可能存在的问题。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5629825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存