python-3.x - 在评估人口时,我应该使用对象还是多值字典?
问题描述
我希望进行一个虚拟实验,其中 100 只“鸽子”和 100 只“乌鸦”种群正在相互作用。我希望在随机鸟类之间进行多次相遇,每次相遇都会改变鸟类的“生命”值。然后,我希望查看人口(有多少幸存者以及在什么条件下......)
我有两个可选的想法:
选项 1 - OOP
class Bird:
# Initializer / Instance Attributes
def __init__(self, creed, life):
self.creed = creed
self.life = life
然后,通过使用循环,创建 200 个实例(100 个,其中 creed='Dove' 和 100 个 creed='Crow')
选项 2 - 字典
Birds = {D1:("Dove", 10), C1:("Crow",10)}
...然后使用循环来Birds.update填写行列
哪个选项更好?(内存消耗、CPU 资源、更新“生命”值时的易用性、获取人口统计数据的难易程度……)
解决方案
在这种情况下,我个人更喜欢“易用性”而不是内存消耗和 CPU 资源。对于当今的任何计算机而言,创建 400 个实例都足够容易,并且采用 OOP 方式在未来扩展您的模型时要容易得多。
这完全取决于您的用例,但我更喜欢 OOP 选项的可读性和易用性。
推荐阅读
- javascript - 按类名获取图像的每个 ID
- text-files - 来自两个文本文件的项目配对
- java - 文本操作基本 Java
- java - 对字符串数组进行 for 循环
- vhdl - 在嵌套的 If-Else 语句 (VHDL) 中推断锁存器
- r - 在 R 中使用 distinct() dplyr 删除重复项
- spring-boot - Spring Boot 2.1.1 无法在 Intellij 2018.1 中运行
- python - 使用 OpenCV Python 更改视频中的单色
- python - Anaconda安装使用了所有空间,如何再次释放空间?
- batch-file - 如何保持一个进程(在本例中为 scrnsave.scr)在所有其他窗口之上运行,使它们在后台运行?