<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def has_changed(self, key, include_last=True):
 """ Determine whether a formatoption changed in the last update Parameters key: str A formatoption key contained in this plotter include_last: bool if True and the formatoption has been included in the last update, the return value will not be None. Otherwise the return value will only be not None if it changed during the last update Returns ------- None or list - None, if the value has not been changed during the last update or `key` is not a valid formatoption key - a list of length two with the old value in the first place and the given `value` at the second"""

        if self._initializing or key not in self:
            return
        fmto = getattr(self, key)
        if self._old_fmt and key in self._old_fmt[-1]:
            old_val = self._old_fmt[-1][key]
        else:
            old_val = fmto.default
        if (fmto.diff(old_val) or (include_last and
                                   fmto.key in self._last_update)):
            return [old_val, fmto.value]