def first(*args, **kwargs):
    return 'first', args, kwargs


class some_cls:

    third = lambda *x, **y: ('third', x, y)

    def __new__(self, *args, **kwargs):
        return 'second', args, kwargs

    @staticmethod
    def fourth(*args, **kwargs):
        return 'fourth', args, kwargs

    @classmethod
    def fifth(cls, *args, **kwargs):
        return 'fifth', args, kwargs


def execute(code, *args, **kwargs):

    actions = {
        1: first,
        2: some_cls,
        3: some_cls.third,
        4: some_cls.fourth,
        5: some_cls.fifth,
        6: lambda *x, **y: ('sixth', x, y)
    }

    return actions.get(code, lambda *x, **y: 'not implemented')(*args, **kwargs)


for code in range(10):
    print(code, execute(code, code+1, double=code*2, power=code**2))
