我有一个Python函数 "send_message",它需要三个参数:
但这个例子不如前一个好,我更喜欢带有命名参数的原始版本。感谢您的任何帮助。
send_message("i like windmills", to="INBOX", from="OUTBOX")
我正在考虑在此基础上添加流畅接口。理想情况下,我想要编写以下任意一种:
send_message("i like windmills").to("INBOX").from("OUTBOX")
send_message("i like windmills").from("OUTBOX").to("INBOX")
# The `to()` information is mandatory but the `from()` is not (as with real letters), so this one would also be a valid call:
send_message("i like windmills").to("INBOX")
有什么想法可以实现这个或类似的功能吗?
我理解对象方法返回“self”的一般方法,但在我看来,这会导致像这样的结果:
message = Message("i like windmills")
message.to("INBOX").from("OUTBOX").send()
但这个例子不如前一个好,我更喜欢带有命名参数的原始版本。感谢您的任何帮助。
message.to(“INBOX”).from(“OUTBOX”).send()
比以前的示例不好,我认为您的意思是不应该有尾随的/build()/send()/whatever()
, 每个方法调用应该自动弄清楚它是否是链中的最后一个元素,如果是,则触发.send()
。 对我来说,这听起来很不理想和冒险,因为现在您不能进行多个赋值,例如general_msg = send_message("i like windmills").from("OUTBOX")
和specific_msg = general_msg.to("Shirley")
.. - smci.send()
,它强制所有流畅行都成为具有无限行长的一行,不能将复杂代码跨越几行。 - smci