Конструкторы в [закрытом] Python

У меня есть хранилище энергии мои файлы подкачки в единственном локальном каталоге при наличии этого в моем .vimrc:

set directory=~/.vim/swap,.

Среди других преимуществ, это делает файлы подкачки легкими найти внезапно. Теперь, когда мой ноутбук теряет питание или безотносительно и я отшатываюсь с набором наложения файлов подкачки вокруг, я просто выполняю мой cleanswap сценарий:

TMPDIR=$(mktemp -d) || exit 1
RECTXT="$TMPDIR/vim.recovery.$USER.txt"
RECFN="$TMPDIR/vim.recovery.$USER.fn"
trap 'rm -f "$RECTXT" "$RECFN"; rmdir "$TMPDIR"' 0 1 2 3 15
for q in ~/.vim/swap/.*sw? ~/.vim/swap/*; do
  [[ -f $q ]] || continue
  rm -f "$RECTXT" "$RECFN"
  vim -X -r "$q" \
      -c "w! $RECTXT" \
      -c "let fn=expand('%')" \
      -c "new $RECFN" \
      -c "exec setline( 1, fn )" \
      -c w\! \
      -c "qa"
  if [[ ! -f $RECFN ]]; then
    echo "nothing to recover from $q"
    rm -f "$q"
    continue
  fi
  CRNT="$(cat $RECFN)"
  if diff --strip-trailing-cr --brief "$CRNT" "$RECTXT"; then
      echo "removing redundant $q"
      echo "  for $CRNT"
      rm -f "$q"
  else
      echo $q contains changes
      vim -n -d "$CRNT" "$RECTXT"
      rm -i "$q" || exit
  fi
done

Это удалит любые файлы подкачки, которые актуальны с реальными файлами. Любой, которые не соответствуют, воспитывается в vimdiff окне, таким образом, я могу объединиться в своих несохраненных изменениях.

- Chouser

7
задан Nathan Basanese 2 September 2015 в 23:47
поделиться

4 ответа

class MyClass(object):
  def __init__(self, x, y, angle):
    self.x = x
    self.y = y
    self.angle = angle

Конструктор всегда записывается как функция с именем __ init __ () . Он всегда должен принимать в качестве первого аргумента ссылку на создаваемый экземпляр. Обычно это называется self . Остальные аргументы остаются на усмотрение программиста.

Объект в первой строке является суперклассом, т.е. это говорит о том, что MyClass является подклассом объекта . Это нормально для определений классов Python.

Вы получаете доступ к полям (членам) экземпляра, используя self. синтаксис.

18
ответ дан 6 December 2019 в 08:15
поделиться

См. Руководство Python .

2
ответ дан 6 December 2019 в 08:15
поделиться

Конструкторы объявляются с помощью __ init __ (self, other parameters) , поэтому в этом случае:

def __init__(self, x, y, angle):
    self.x = x
    self.y = y
    self.angle = angle

Подробнее об этом можно прочитать здесь: Определение класса в python

6
ответ дан 6 December 2019 в 08:15
поделиться
class MyClass(SuperClass):
    def __init__(self, *args, **kwargs):
        super(MyClass, self).__init__(*args, **kwargs)
        # do initialization
-4
ответ дан 6 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

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