У меня есть класс, который мне нужен:
- Первый экземпляр ДОЛЖЕН получить параметр.
- Все следующие экземпляры имеют этот параметр как необязательный.
Если он не пройден, я буду использовать параметр предыдущего объекта init.
Для этого мне нужно разделить переменную между объектами (все объекты принадлежат классам с одним и тем же родителем).
Например:
class MyClass:
shared_variable = None
def __init__(self, paremeter_optional=None):
if paremeter_optional is None: # Parameter optional not given
if self.shared_variable is None:
print("Error! First intance must have the parameter")
sys.exit(-1)
else:
paremeter_optional = self.shared_variable # Use last parameter
self.shared_variable = paremeter_optional # Save it for next object
objA = MyClass(3)
objB = MyClass()
Поскольку Переменная shared_variable не является согласованной / разделяемой для всех inits, при выполнении приведенного выше кода я получаю ошибку:
Error! First intance must have the parameter
(после второго инициализации objB)
Конечно, я мог бы использовать глобальный переменная, но я хочу избежать этого, если это возможно, и использовать некоторые передовые методы для этого.