Как оценить параметр функции, вызываемой из оболочки декоратора? - PullRequest
0 голосов
/ 29 августа 2018

В оболочке require_registered декоратора, как проверить, присутствует ли "Джон" в зарегистрированных пользователях?

def require_registered(some_function):

    def wrapper(*args, **kwargs):

        if username_parameter_from_login_function in registered_users: #how to replace "username_parameter_from_login_function"?
            some_function(*args, **kwargs)
        else:
            print("User is not registed")

    return wrapper

@require_registered
def login(username):
    print(username + ' has been logged in')

login('John')

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны определить вашу wrapper функцию, чтобы также взять username в качестве параметра:

def wrapper(username, *args, **kwargs):
    if username in registered_users:
        some_function(username, *args, **kwargs)
    else:
        print("User is not registed")
...