<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_DataFrame(self, data=False, with_unit=True, with_population=True):
 """ Yields all panda.DataFrames or there names Notes ----- For IOSystem this does not include the DataFrames in the extensions. Parameters data : boolean, optional If True, returns a generator which yields the DataFrames. If False, returns a generator which yields only the names of the DataFrames with_unit: boolean, optional If True, includes the 'unit' DataFrame If False, does not include the 'unit' DataFrame. The method than only yields the numerical data tables with_population: boolean, optional If True, includes the 'population' vector If False, does not include the 'population' vector. Returns ------- DataFrames or string generator, depending on parameter data """


        for key in self.__dict__:
            if (key is 'unit') and not with_unit:
                continue
            if (key is 'population') and not with_population:
                continue
            if type(self.__dict__[key]) is pd.DataFrame:
                if data:
                    yield getattr(self, key)
                else:
                    yield key