max*_*max 1 python debugging self
我理解为什么Python self在引用实例属性时需要显式限定符.
但我经常忘记它,因为我在C++中不需要它.
我用这种方式介绍的错误有时候很难捕捉到; 例如,假设我写
if x is not None:
f()
Run Code Online (Sandbox Code Playgroud)
代替
if self.x is not None:
f()
Run Code Online (Sandbox Code Playgroud)
假设属性x通常None,所以f()很少叫.并且假设f()仅产生微妙的副作用(例如,数值的改变,或清除缓存等).除非我有疯狂的单元测试,否则这个错误很可能会长时间被忽视.
我想知道是否有人知道编码技术或IDE功能可以帮助我捕获或避免这种类型的错误.
不要将实例属性命名为与globals/locals相同的内容.
如果没有同名的全局/本地,global "foo" is not defined当您尝试访问时会遇到错误self.foo但忘记了self..
作为推论:给你的变量描述性的名字.不要命名所有内容x- 这不仅会使您拥有与属性同名的变量的可能性大大降低,而且还使您的代码更易于阅读.
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |