<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def defaultnamedtuple(typename, field_names, defaults=()):
 """ Generates a new subclass of tuple with default values. Parameters typename : string The name of the class. field_names : str or iterable An iterable of splitable string. defaults : iterable Default values for ``field_names``, counting ``[-len(defaults):
]``. Examples -------- 'Body(x, y, z, density)' OrderedDict([('x', 10), ('y', 5), ('z', 3), ('density', 1.0)]) Returns ------- A new tuple subclass named ``typename`` """

    Tuple = namedtuple(typename, field_names)
    Tuple.__new__.__defaults__ = (None,) * len(Tuple._fields)
    if isinstance(defaults, Mapping):
        Tuple.__new__.__defaults__ = tuple(Tuple(**defaults))
    else:
        nmissing = len(Tuple._fields) - len(defaults)
        defaults = (None,)*nmissing + tuple(defaults)
        Tuple.__new__.__defaults__ = tuple(Tuple(*defaults))
    return Tuple