<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save_method_args(method):
 	""" 	Wrap a method such that when it is called, the args and kwargs are 	saved on the method. 	1 2 	(1, 2) 	{} 	3 foo 	() 	True 	The arguments are stored on the instance, allowing for 	different instance to save different args. 	{'x': 3} [4] 	({'x': 3},) 	() 	"""

	args_and_kwargs = collections.namedtuple('args_and_kwargs', 'args kwargs')

	@functools.wraps(method)
	def wrapper(self, *args, **kwargs):
		attr_name = '_saved_' + method.__name__
		attr = args_and_kwargs(args, kwargs)
		setattr(self, attr_name, attr)
		return method(self, *args, **kwargs)
	return wrapper