maryjess / 6nimmts

Aspiring to create a digital version of the card game 6 nimmt!
0 stars 1 forks source link

Refactor `input()` #15

Open maryjess opened 1 month ago

maryjess commented 1 month ago

Feasible option(s):

maryjess commented 6 days ago
  • Using decorators
def input_validation(validation_func):
    def decorator(func):
        def wrapper(*args, **kwargs):
            while True:
                value = func(*args, **kwargs)
                if validation_func(value):
                    return value
                else:
                    print("Invalid input, please try again.")
        return wrapper
    return decorator

@input_validation(lambda x: x.isdigit())
def get_input(prompt):
    return input(prompt)

age = get_input("Enter your age: ")

decorators.py