[英]Implement method chaining in a class in Python
我正在阅读在 Python 中使用 Fluent 接口的文档并遇到了这个包: https : //pypi.org/project/fluentpy/ 。
我创建了一个相当人为的示例来测试它,如下面的 Persons 类:
class Persons:
def __init__(self, names):
self.names = names
def get_lengths(self):
return [len(name) for name in self.names]
def get_name_length_map(self, lengths):
return {
name: length
for name, length in zip(self.names, lengths)
}
正如我们所见,方法get_lengths
和get_name_length_map
可以链接。
下面是一个简单的例子,说明我们如何在简单的情况下使用这个类(不使用 fluentpy):
p = Persons(["Subhayan", "Ralf", "Thomas", "Leo"])
print(p.get_lengths())
print(p.get_name_length_map(p.get_lengths()))
有人可以指出我可以在这里使用 fluentpy 进行方法链接的方法吗? 我必须对课程进行一些更改才能使其正常工作吗?
任何帮助将不胜感激。
在每个可链接的方法之后返回self
。 但是,我认为您的任何方法都不是有价值的候选方法,因为它们实际上返回了一个可能在某处使用的值(用户可能想要读取该值,但相反,获取的是对象而不是数字,令人困惑)。 当函数不返回除null|undefined|None
之外的任意值时,使用可Chainable methods
; 例如,如果您有一个函数popItem
,它可以是可链接的,但前提是您没有返回该popped
值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.