<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def face_colors(self, values):
 """ Set the colors for each face of a mesh. This will apply these colors and delete any previously specified color information. Parameters colors: (len(mesh.faces), 3), set each face to the specified color (len(mesh.faces), 4), set each face to the specified color (3,) int, set the whole mesh this color (4,) int, set the whole mesh this color """

        if values is None:
            if 'face_colors' in self._data:
                self._data.data.pop('face_colors')
            return

        colors = to_rgba(values)

        if (self.mesh is not None and
                colors.shape == (4,)):
            count = len(self.mesh.faces)
            colors = np.tile(colors, (count, 1))

        # if we set any color information, clear the others
        self._data.clear()
        self._data['face_colors'] = colors
        self._cache.verify()