ввести ()?
>>> class A(object):
... def whoami(self):
... print type(self).__name__
...
>>>
>>> class B(A):
... pass
...
>>>
>>>
>>> o = B()
>>> o.whoami()
'B'
>>>
Ответ Тома Крейфорда близок, но используйте функцию «pr» вместо «print». «pr» производит строки, которые могут быть прочитаны с помощью «read».
(defn save-db [db filename]
(spit
filename
(with-out-str (pr db))))
(defn load-db [filename]
(with-in-str (slurp filename)
(read)))
Обратите внимание, что это не сработает, если * print-dup * имеет значение true. См. билет № 176 Обратите внимание, что когда вы читаете базу данных обратно, записи будут обычными картами, а не структурными картами. Карты структур пока не могут быть сериализованы с помощью pr / read.
Используйте spit and slurp (пример взят из http://www.nofluffjuststuff.com/blog / stuart_halloway / 2008/09 / pcl__clojure_chapter_3_1 ). Обычно этот метод называется сериализацией.
(defn save-db [db filename]
(spit
filename
(with-out-str (pr db))))
(defn load-db [filename]
(with-in-str (slurp filename)
(read)))
(Более ранняя ошибка печати была в исходном коде, и я был глуп и не проверял ее. Спасибо)