Как вызвать переменную функцию с некоторыми параметрами перед переменным параметром, используя hy?

Я пытаюсь написать что-то похожее на:

@classmethod
def write(cls, records, values, *args):
    return super(Hello, cls).write(records, values, *args)

Но у меня есть проблемы с передачей *args обратно. Я пытался использовать apply (но не могу передать запись и значения). Я также пытался использовать применить с частичным, но безуспешно.

Текущий не рабочий код в Hylang:

(with-decorator classmethod
    (defn write [cls records values &rest args]
      (.write (super Hello cls) records values args)
      ))

В clojure обычно я бы написал:

(apply .write (super Hello cls) records values args)

Но кажется, что применение в hy не поддерживает аргументы до *args.

Как я могу написать оригинальный код Python в Hy?

1 ответ

Я обновил до последней версии Hy

pip install git+https://github.com/hylang/hy.git

В этой последней версии приложение было заменено на #*

apply был заменен на операторы распаковки в стиле Python #* а также #** (например, (f #* args #** kwargs))

В новой версии hy код может быть записан как:

(with-decorator classmethod
(defn write [cls records values &rest args]
  (.write (super Hello cls) records values #* args)
  ))
Другие вопросы по тегам