Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 评估总体时,我应该使用对象还是多值字典?_Python 3.x_Oop_Dictionary - Fatal编程技术网

Python 3.x 评估总体时,我应该使用对象还是多值字典?

Python 3.x 评估总体时,我应该使用对象还是多值字典?,python-3.x,oop,dictionary,Python 3.x,Oop,Dictionary,我希望进行一个虚拟实验,100只“鸽子”和100只“乌鸦”在其中相互作用。我希望在随机的鸟类之间进行多次遭遇,每次遭遇都会改变鸟类的“生命”价值。然后,我想查看人口(有多少人幸存,情况如何……) 我有两个可选的想法: 选项1-OOP 然后,通过使用循环,创建200个实例(100个creed='Dove'和100个creed='Crow') 选项2-字典 …然后使用循环更新填充列 哪种选择更好?(内存消耗、CPU资源、更新“寿命”值时的易用性、获取人口统计数据的易用性……在这种情况下,我个人更喜欢

我希望进行一个虚拟实验,100只“鸽子”和100只“乌鸦”在其中相互作用。我希望在随机的鸟类之间进行多次遭遇,每次遭遇都会改变鸟类的“生命”价值。然后,我想查看人口(有多少人幸存,情况如何……)

我有两个可选的想法:

选项1-OOP 然后,通过使用循环,创建200个实例(100个creed='Dove'和100个creed='Crow')

选项2-字典 …然后使用循环更新填充列


哪种选择更好?(内存消耗、CPU资源、更新“寿命”值时的易用性、获取人口统计数据的易用性……

在这种情况下,我个人更喜欢“易用性”,而不是内存消耗和CPU资源。创建400个实例对于现在的任何计算机来说都很容易,而在将来扩展到您的模型时,采用面向对象的方式要容易得多


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

Dict是一个类的基础。在你的例子中,你所上的课很幼稚,所以使用dict是一个很好的选择。易懂的和可读的b。更快、更少的记忆我将尝试用一个例子来解释这个用例:我正在创造“鸟”之间的互动,改变它们的生活变量。一旦达到0,鸟就死了。如果我想计算有多少乌鸦/鸽子活着。。。一个类方法是最好的主意,还是我应该计算一个字典?完整的例子和计算看看你的项目和它的范围。我肯定会采用面向对象的方式。您的可读性更好,并且有了这个范围,您就不会在内存消耗或CPU资源上妥协。如果您想要升级到具有更多属性的鸟类模型,这种方式也会容易得多。至少我会这么做。希望它能帮助你做出决定。
class Bird:

    # Initializer / Instance Attributes
    def __init__(self, creed, life):
        self.creed = creed
        self.life = life
Birds = {D1:("Dove", 10), C1:("Crow",10)}