from typing import Tuple


def __make_init__(zero, names: Tuple[str, ...]):
    """Make an ``__init__`` with ``names`` as keywords and defaults of ``zero``"""
    namespace = {}
    args_list = f'={zero}, '.join(names)
    exec(
        '\n'.join(
            [
                f"""def __init__(self, *, {args_list}={zero}):"""
            ] + [
                f"""    self.{name} = {name}"""
                for name in names
            ]
        ),
        namespace
    )
    return namespace['__init__']