Задать вопрос

Плохо ли использовать одну глобальную константу?

Всем привет.
Пишу программу в которой у меня есть логин и пароль для каждого пользователя + права доступа.
Вот у меня вопрос. Мне нужно на протяжении всей программы хранить права доступа пользователя.
Права доступа используются в разных классах функциях и файлах программы.
Мне кажется самым простым решением создать одну глобальную константу в которой будут храниться права доступа.
Но слышал что глобальные переменные зло. Но не передавать из класса в класс переменную в которой будет написано "admin" или "work".
Скажите что вы думаете по этому поводу?
  • Вопрос задан
  • 302 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
@theg4sh
Использовать конструкцию вида:
class Auth:
  _instance = None;
  def __init__(self, user, pswd):
    # some initialization
    self._id = None
    pass
  def getId(self):
    return self._id
  @staticmethod
  def getInstance(user, pswd):
    if Auth._instance is None:
      Auth._instance = Auth(user, pswd)
    return Auth._instance

# later use authorization as Auth.getInstance().getId();

Вообще, стоит познакомиться поближе с понятием Singleton и содержимым вот этой ссылочки

Upd: пример-примером, но поправил инициализацию, извиняюсь :)
Upd2: метод getInstance должен быть статическим, чтобы удовлетворять условию использования Auth.getInstance(). Поправил.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
Статический класс Config со статическими полями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы