您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

在上面的代码片段中没什么大不了的,但是请想象一个具有更多参数和更多代码行的函数。然后,您决定将data参数重命名为,yadda但错过了函数主体中使用该参数的位置之一…现在data是指全局变量,您开始有怪异的行为-NameError如果不这样做,您将拥有更明显的表现有一个全球的名字data

还要记住,在Python中,所有东西都是对象(包括模块,类和函数),因此对于函数,模块或类没有明显的命名空间。另一种情况是将函数导入foo模块的顶部,然后在函数主体中的某个位置使用它。然后,在函数添加一个新参数,并将其命名为- bad lucky- foo

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

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

其他 2022/1/1 18:35:31 有422人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶