繁体   English   中英

在 Python 中的类中实现方法链

[英]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_lengthsget_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM