我是一个C++程序员,刚刚开始学习Python。我想知道如何跟踪大型Python类中的实例变量。我习惯于拥有一个.h文件,它为我提供了一个完整的类成员列表(包括注释)。但是既然Python允许动态添加新的实例变量,那么如何跟踪它们呢?
我设想了一个场景,当我已经有一个实例变量时,我错误地添加了一个新的实例变量--但是它离我工作的地方还有1000行。是否有避免这种情况的标准做法?
编辑:--似乎我用“成员变量”这个词造成了一些混乱。我指的是实例变量,并相应地编辑了我的问题。
发布于 2009-01-30 18:39:58
首先:类属性,还是实例属性?或者两者兼而有之
通常您只需在__init__中添加实例属性,在类定义中添加类属性,通常在方法定义之前添加.这可能涵盖90%的用例。
如果代码动态添加属性,它可能(希望:-)有很好的理由这样做.利用动态特性、内省等等,除此之外,以这种方式添加属性可能不像您想象的那么常见。
发布于 2009-01-31 04:45:58
我想说的是,避免这种情况的标准做法是,不要在离任何东西1000行的地方编写类!
说真的,对于任何有用的类来说,这都太过分了,尤其是在像Python这样具有表现力的语言中。使用标准库提供的更多内容,并将代码抽象到单独的模块中,将有助于降低LOC的数量。
标准库中最大的类有远低于100行的!
发布于 2009-01-31 07:15:15
匹林特可以静态地检测__init__中没有检测到的属性,以及许多其他潜在的bug。
我还建议编写单元测试并经常运行代码,以检测这些类型的"whoopsie“编程错误。
https://stackoverflow.com/questions/496582
复制相似问题