希望有人可以帮助我解决这个问题。我正在将一些 python 代码移植到 hy,并试图弄清楚如何使用 doto 宏删除一些重复的代码。例如,看一个像这样的 python 类:
class Foo(object):
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
我如何将其转换为 hy 以使用 doto?
(defclass Foo [object]
[[__init__ (fn [self x y z]
(doto self ;
(setv ...) ; What goes here?
))]])
问题是看起来你通常会做这样的事情:
(defclass Foo [object]
[[__init__ (fn [self x y z]
(setv self.x x)
(setv self.y y)
(setv self.z z))]])
我看不到在自己身上使用 (doto) 的方法。