<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def weather_cells(self):
 """ Weather cells contained in grid Returns ------- list list of weather cell ids contained in grid """

        if not self._weather_cells:

            # get all the weather cell ids
            self._weather_cells = []
            for gen in self.generators:
                if hasattr(gen, 'weather_cell_id'):
                    self._weather_cells.append(gen.weather_cell_id)

            # drop duplicates
            self._weather_cells = list(set(self._weather_cells))
            # no need to check for Nones in the list because None in
            # gen.weather_cell_id is kicked out by the if hasattr() before

        return self._weather_cells