Что идиоматический путь состоит в том, чтобы получить печать к ** от функции Clojure?

Storm имеет возможно самый простой API:

  from storm.locals import *

  class Foo:
      __storm_table__ = 'foos'
      id = Int(primary=True)


  class Thing:
      __storm_table__ = 'things'
      id = Int(primary=True)
      name = Unicode()
      description = Unicode()
      foo_id = Int()
      foo = Reference(foo_id, Foo.id)

  db = create_database('sqlite:')
  store = Store(db)

  foo = Foo()
  store.add(foo)
  thing = Thing()
  thing.foo = foo
  store.add(thing)
  store.commit()

И это делает его безболезненным к выпадающему в необработанный SQL, когда Вы должны:

store.execute('UPDATE bars SET bar_name=? WHERE bar_id like ?', []) 
store.commit()

5
задан Robert Campbell 3 December 2009 в 12:28
поделиться

2 ответа

Я только что обнаружил with-out-str из этого замечательного сообщения в блоге , подробно описывающего обработку XML в Clojure.

Итак, правильная реализация мой пример:

(def xml (with-out-str (prxml [:p "Test"])))
6
ответ дан 13 December 2019 в 05:36
поделиться

В более общем плане, если вы посмотрите на исходный код with-out-str , вы увидите, как динамически привязать * out * к любому потоку используя привязку . Это работает для динамической установки значения любой существующей переменной.

6
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

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