Ваш код уже соответствует требованиям: Act
может быть создан с 4 аргументами или с 3 аргументами, в этом случае stage
устанавливается на None
. Такое использование необязательных параметров является хорошей практикой в python, но если вы хотите, вы можете добавить совершенно отдельный конструктор, реализованный также как @classmethod
:
class Act:
def __init__(self, num_members, name, kind, stage):
self._num_members = num_members
self._name = name
self._kind = kind
self._stage = stage
@classmethod
def without_stage(cls, num_members, name, kind):
return cls(num_members, name, kind, None)
Теперь вы можете создавать Act
как Act(num_members, name, kind, stage)
или как Act.without_stage(num_members, name, kind)
.