В C++, Java и JavaScript текущий объект, исполняющий этот метод, всегда называется this
. В Smalltalk это называется self
. В OCaml вы можете дать ему любое имя, которое вам нравится. Любое имя появляется в круглых скобках после object
- это имя текущего объекта. В этом примере текущий объект имеет имя self
. (Я не знаю, что вы подразумеваете под термином «рекурсивный класс».)
В некоторых случаях полезно иметь имя для типа текущего объекта. Опять же, вы можете присвоить ему любое имя, поставив : 'name
после имени текущего объекта. В этом примере тип текущего объекта называется 'mytype
. Имя не используется нигде в коде, но оно может использоваться, если код должен усложняться. Обратите внимание, что 'mytype
- это не просто другое имя для типа класса backup
. В классе, который наследует от backup
, 'mytype
представляет тип этого наследующего класса.
Ваше описание save
способ кажется правильный. Он создает копию текущего объекта и сохраняет копию в поле с именем copy
. Поле copy
копии установлено в None
. I.e., копия не имеет собственной сохраненной копии, даже если у содержащего объекта уже есть один. Этот метод использует специальную нотацию {<...>}
, которая создает копию текущего объекта.