从类OOP python的所有实例创建字典

从类OOP python的所有实例创建字典,python,Python,我有下面的类,它们是更多的属性。。每年人口都在变化,在x年结束时,我试图建立一个有序的字典,告诉我哪个国家的人口最多,患病人数最少。。。我如何建立一个每年更新的字典,并在最后给我这些信息 如何获取上一回合的统计信息 让我澄清这个问题 我所需要的只是在模拟结束时有一个有序的字典 class Country(object): """ Modeling a country immigration. """ def __init__(name, immigrants, populati

我有下面的类,它们是更多的属性。。每年人口都在变化,在x年结束时,我试图建立一个有序的字典,告诉我哪个国家的人口最多,患病人数最少。。。我如何建立一个每年更新的字典,并在最后给我这些信息

如何获取上一回合的统计信息

让我澄清这个问题

我所需要的只是在模拟结束时有一个有序的字典

class Country(object):
    """ Modeling a country immigration. """

    def __init__(name, immigrants, population, disease_numbers):

        self.name = name
        self.immigrants = immigrants
        self.population = population
        self.disease_numbers = disease_numbers
然后可以选择伦敦作为例子,因为患病人数较多。因此,仔细考虑这一点几乎可以成为一种新的方法,让更多的人感染这种疾病

  d = {'self.name' : London
       ('self.immigrants' : 15000
       'self.population' : 500000
       'self.disease_numbers' :3000) , 
        'self.name' : Madrid
       ('self.immigrants' : 17000
       'self.population' : 5000
       'self.disease_numbers' :300)}
向类中添加函数是否有效


向类中添加函数是否有效?

不完全清楚您打算如何更新国家数据,但听起来您需要的只是将国家数据对象存储在一个字典字典中,并使用一系列类似数据库的函数来查询它,如下所示:

class Country(object):
    """ Modeling a country immigration. """

    def __init__(name, immigrants, population, disease_numbers):

        self.name = name
        self.immigrants = immigrants
        self.infected = population
        self.disease_numbers = disease_numbers

    def update_pop(self, year, rate):
        self.infected = self.infected * year * rate
如果需要,可以将这些函数和数据字典添加到类中,如下所示


这很方便,因为与存储和查询国家数据相关的所有功能都可以与您需要的任何建模方法一起存储在country类中。

不完全清楚您打算如何更新国家数据,但听起来您需要的只是将国家数据对象存储在字典字典中,并使用一系列类似数据库的函数进行查询,如下所示:

class Country(object):
    """ Modeling a country immigration. """

    def __init__(name, immigrants, population, disease_numbers):

        self.name = name
        self.immigrants = immigrants
        self.infected = population
        self.disease_numbers = disease_numbers

    def update_pop(self, year, rate):
        self.infected = self.infected * year * rate
如果需要,可以将这些函数和数据字典添加到类中,如下所示


这很方便,因为所有与存储和查询国家数据相关的功能都可以与您需要的任何建模方法一起存储在country类中。

根据我的理解,这些答案可能会对您有所帮助,可能会对您有所帮助。您可能想在类中添加一个方法,以对每年的数据变化进行建模。然后创建您感兴趣的所有实例,并在循环中多次调用“update”方法。之后,您可以编写一些代码来检查实例的数据,并以所需的形式返回所需的信息。但是如果没有关于移民和疾病传播的逻辑的细节,或者你希望最终的词典是如何组织的,我就说不出更多了。@Robin Zigmond,我正在努力找出哪个国家有更多的人口和疾病数字。你们班还做些什么?只是为了存储数据吗?如果是这样,那么使用
pandas
dataframe比使用对象字典更容易完成这类任务。根据我的理解,有一些答案可能会对你有所帮助。你可能想在类中添加一个方法,以模拟每年数据的变化。然后创建您感兴趣的所有实例,并在循环中多次调用“update”方法。之后,您可以编写一些代码来检查实例的数据,并以所需的形式返回所需的信息。但是如果没有关于移民和疾病传播的逻辑的细节,或者你希望最终的词典是如何组织的,我就说不出更多了。@Robin Zigmond,我正在努力找出哪个国家有更多的人口和疾病数字。你们班还做些什么?只是为了存储数据吗?如果是这样的话,那么使用
pandas
dataframe比使用对象字典更容易完成这类任务。我不确定我是否能够工作,但我没有足够的话来感谢你的全面解释。我不确定我是否能够工作,但是我没有足够的话来感谢你的全面解释。
class Country(object):
    """ Modeling a country immigration. """
    data = {}

    def __init__(self, name, immigrants, population, disease_numbers):
        self.name = name
        self.immigrants = immigrants
        self.infected = population
        self.disease_numbers = disease_numbers

    @classmethod
    def add_data(cls, year, *args, **kwargs):
        obj = cls(*args, **kwargs)
        cls.data[obj.name, year] = obj

    # ...

 Country.add_data("Venezuela", 1989, 100, 20, 50)