簡體   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