5

在我看来,鼓励字典超过定义类和使用类。我什么时候应该在课堂上使用字典,反之亦然?

例如,如果我想要一个人字典并且每个人都有一个名字和其他属性,两种简单的方法是:

  1. 建立人民字典。每个键将是人名,值将是该人所有属性的字典。

  2. 创建一个Person包含这些属性的类,然后有一个Persons 的字典,名称为键,Person对象为值。

两种解决方案似乎都有效并实现了目标,但似乎 python 中的字典仍然是要走的路。实现非常不同,如果我想来回切换,我可能会遇到很多变化,从基于类的实现到基于字典的实现,反之亦然。

那我在交易什么?

4

2 回答 2

4

字典是开始或尝试解决问题的方法的好方法。它们不能替代精心设计的课程。有时它是正确的“最终解决方案”,也是处理“我只需要携带一些数据”需求的最有效方式。我发现有时从字典开始很有用,并且通常会编写一些函数来提供我正在处理的特定案例所需的额外行为。在某些时候,我通常会发现切换到使用类而不是字典会更整洁。这通常取决于满足情况需要所需的行为的数量和复杂性。因为在 Python 中定义和使用类非常容易,我发现我从“字典加函数”切换 很早就上课了。(我发现的一件事是“快速组合解决方案”程序在很多情况下都有自己的生命——拥有可以扩展和重构的真实类而不是大量(ab) 使用字典的代码。

于 2012-09-17T23:30:48.897 回答
2

除非您还想用数据封装行为,否则您应该使用字典。类不仅用于存储数据,还用于指定对该数据执行的操作。

于 2012-09-17T23:09:22.137 回答