<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_axis(self, axis):
 		"""Check if the event has a valid value for the given axis. 		If this method returns True for an axis and :meth:`get_axis_value` 		returns a value of 0, the event is a scroll stop event. 		For pointer events that are not of type 		:attr:`~libinput.constant.EventType.POINTER_AXIS`, this method raises 		:exc:`AttributeError`. 		Args: 			axis (~libinput.constant.PointerAxis):
 The axis to check. 		Returns: 			bool: True if this event contains a value for this axis. 		Raises: 			AttributeError 		"""


		if self.type != EventType.POINTER_AXIS:
			raise AttributeError(_wrong_meth.format(self.type))
		return self._libinput.libinput_event_pointer_has_axis(
			self._handle, axis)