0

为什么以下工作:

(def session (sessionmaker))
(.configure session :bind engine)

...但是(def session (.configure (sessionmaker) :bind engine))导致我的 Hy 应用程序抛出一个NoneType TypeError?

4

1 回答 1

2

那么(sessionmaker)创建一个“会话”对象?(.configure (sessionmaker) :bind engine)方法调用是否返回该会话对象?还是只是为了副作用?我怀疑是后者,只是返回None。您可能正在寻找doto表单,它可以让您配置一个对象,然后在最后返回它。所以代码是

(def session (doto (sessionmaker) (.configure :bind engine)))

如果您熟悉 Python,$ hy --spyREPL 中的选项对于理解 Hy 是如何编译的非常有用。

于 2017-07-01T05:16:48.777 回答