为了避免在架构决策中迷失方向,我将用一个类比的例子来询问:
假设我想要一个像这样的Python类模式:
假设我想要一个像这样的Python类模式:
queue = TaskQueue(broker_conn)
queue.region("DFW").task(fn, "some arg")
这里的问题是如何设计一个类,使得某些方法可以以这种方式“链式”调用。
task()
需要访问 queue
类实例的属性以及 region()
的输出结果决定了 task()
的操作。
我看到 SQLalchemy 这样做(见下文),但很难在他们的代码中挖掘出来并隔离这个模式。
query = db.query(Task).filter(Task.objectid==10100)
fn
替换了self
。 - Martijn Pietersfn(...)
更正为func(...)
。 - Martijn Pieterstype(instance)
返回的相同对象。 - Martijn Pieters