现在,我有很多 python 文件。每个都有很多功能。
我到处传递 HashMap 。基本词典,以单词为键,以分数为值。
{ 'dog': 33, 'cat': 294 }
我也在做一些更复杂的结构,比如:
{ 'dog': [ 33, 66, 11, 88 ], 'cat': [11, 66, 22] }
我需要将这些变成我自己的“对象”吗?如果是这样,它们会是什么? 我不太喜欢 OOP,所以我会问这些菜鸟问题。
最佳答案
我维护了一个大型代码库多年,它更喜欢原始指令而不是对象,我的观点是,如果这个代码库将由 A) 另一个人或 B) 几个人维护,你应该开始迁移到真正的类和哎呀。首先,您可以通过查看源代码甚至使用 dir()
和其他内省(introspection)技术以交互方式轻松查看类实例应该具有的属性,这使您的代码更容易学习,修改、维护。使用具有直观名称、定义明确的属性、文档和可读源代码的类,理解和调试就容易得多,而不是一大堆函数,这些函数将字典作为参数,并在运行时以多种方式转换它们只有阅读整个代码库才能理解。当涉及类时,回溯通常也更容易阅读和破译,因为您不会收到通用的低级错误消息。
作为进一步的证据,请查看成熟且成功的 Python 项目。您会看到很多 OOP、类和文档。原始字典、列表、集合和元组在适当的时候(你的数据真的很简单)和小型项目和脚本都很棒,但可维护性不会持续超过一定的项目规模。只有当您的 X 概念极其简单时,“X 只是一个指令”的概念才会存在。
关于python - 如果我到处都在处理字典,我应该把它们设为 "classes"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720440/