С python в общем случае не всегда можно напрямую применять ограничения на код, по крайней мере, с объектно-ориентированной точки зрения (думая об абстрактных классах, частных методах, ...). Чтобы внедрить подкласс для реализации метода, вы можете сделать что-то вроде:
class Animal():
def speak(self):
raise NotImplementedError #abstract
class Dog(Animal):
def speak(self):
return "bark"
class MuteAnimal(Animal):
pass
Это не означает, что этот метод будет реализован подклассом, но он просто вызовет ошибку, когда говорящий метод не реализован.
Обычно я использую веб-службу (asmx) с атрибутом ScriptService и ScriptManager. Есть некоторые незначительные несовместимости с некоторыми плагинами jQuery, но это не слишком серьезно, и мне не нужно заниматься какой-либо ручной сериализацией.
Потом спрячь. Поскольку все содержимое файла новое, оно будет спрятано, и вы можете управлять им по мере необходимости.git stash --include-untracked
мой фаворит, поскольку это сохранило также файлы, что Вы добавили и не подготовили их.
Добавьте файл в индекс:
git add path/to/untracked-file
git stash
Все содержимое индекса, плюс любые неустановленные изменения в существующих файлах, попадут в тайник.
Я подумал, что эту проблему можно решить, сообщив git, что файл существует, вместо того, чтобы фиксировать все его содержимое в промежуточной области, а затем вызвать git stash
. Аракнид описывает , как сделать первое.
git add --intent-to-add path/to/untracked-file
или
git update-index --add --cacheinfo 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 path/to/untracked-file
Однако последнее не работает:
$ git stash
b.rb: not added yet
fatal: git-write-tree: error building trees
Cannot save the current index state