Как сделать проверку роли у пользователя и выдачи второй роли, если первая роль есть?

Для реализации проверки роли у пользователя и выдачи второй роли в случае наличия первой роли в языке Python существует несколько подходов. Рассмотрим два из них.

1. Использование условных операторов:

def check_role(user_role):
    if user_role == 'role1':
        return 'role2'
    else:
        return None

# Пример использования:
user_role = 'role1'
second_role = check_role(user_role)
if second_role:
    print(f'Выполнена проверка роли {user_role}. Вторая роль: {second_role}')
else:
    print(f'Выполнена проверка роли {user_role}. Роль не найдена.')

В этом примере мы определяем функцию check_role, которая принимает в качестве аргумента текущую роль пользователя. Внутри функции мы сравниваем эту роль с искомой первой ролью ('role1') и, если совпадение найдено, возвращаем вторую роль ('role2') из функции. В противном случае, возвращаем значение None. Затем мы вызываем функцию, передавая ей значение текущей роли пользователя, и сохраняем результат в переменной second_role. Затем, используя условный оператор if, мы проверяем, успешно ли прошла проверка роли и выводим соответствующее сообщение.

2. Использование словаря:

def check_role(user_role):
    role_map = {
        'role1': 'role2'
    }
    return role_map.get(user_role)

# Пример использования:
user_role = 'role1'
second_role = check_role(user_role)
if second_role:
    print(f'Выполнена проверка роли {user_role}. Вторая роль: {second_role}')
else:
    print(f'Выполнена проверка роли {user_role}. Роль не найдена.')

В данном примере мы определяем функцию check_role, которая принимает в качестве аргумента текущую роль пользователя. Внутри функции мы создаем словарь role_map, где ключами являются искомые первые роли, а значениями - вторые роли. С помощью метода get() мы получаем значение второй роли из словаря, соответствующее текущей роли пользователя. Если такое значение существует, оно возвращается из функции. В противном случае, метод get() возвращает значение None. Затем мы вызываем функцию, передавая ей значение текущей роли пользователя, и сохраняем результат в переменной second_role. Затем, используя условный оператор if, мы проверяем, успешно ли прошла проверка роли и выводим соответствующее сообщение.

Оба подхода предоставляют возможность гибко настраивать соответствие первых и вторых ролей, добавлять новые роли и выполнять проверку в соответствии с требованиями вашего проекта. Выбор подходящего метода зависит от конкретной задачи и сложности логики проверки ролей.