如何在使用hy的变量参数之前用一些参数调用可变参数函数?

时间:2018-01-17 07:14:39

标签: 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之前的参数。

如何在hy?

中编写原始python代码

1 个答案:

答案 0 :(得分:0)

我更新到hy

的最新版本
pip install git+https://github.com/hylang/hy.git

在此最新版本中,apply已替换为#*

  

apply已被Python样式的解包操作符#*替换   #**(例如(f #* args #** kwargs)

在新版本的hy上,代码可以写成:

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