首页 > 解决方案 > 在评估人口时,我应该使用对象还是多值字典?

问题描述

我希望进行一个虚拟实验,其中 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 资源、更新“生命”值时的易用性、获取人口统计数据的难易程度……)

标签: python-3.xoopdictionary

解决方案


在这种情况下,我个人更喜欢“易用性”而不是内存消耗和 CPU 资源。对于当今的任何计算机而言,创建 400 个实例都足够容易,并且采用 OOP 方式在未来扩展您的模型时要容易得多。

这完全取决于您的用例,但我更喜欢 OOP 选项的可读性和易用性。


推荐阅读