0
0 комментариев

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

Поясню примером.
Для одной моей задачи мне нужно было создавать класс, объекты которого будут получать уникальный номер при создании. Я сделал это так:

class A(object):
 
    _counter = 0
 
    def __init__(self):
        self.id = A._counter
        A._counter += 1

Это работает, но насколько это хорошо с точки зрения правильных принципов архитектуры?

Это ведь чем-то очень похоже на глобальную переменную получается.

А можно ведь сделать, чтобы экземпляры объекта не только айдишники таким образом получали, но и потом коммуницировались с другими экземплярами через переменные класса. Насколько правильно делать так?

А если в переменную положить не просто значение, а сложный объект — то это вообще синглтон получится.

А ещё к переменной класса могут обращаться не только его экземпляры, но и какой-то внешний код. Так, наверное, вообще не стоит делать?

Изменен статус публикации
Добавить комментарий