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