我發現這個method chaining in python,但即使是我無法理解的Python方法鏈接。基本方法鏈接
這裏的目標有兩個:解決編碼問題和理解方法鏈接(因爲我仍然有信心可調用不是100%)。
下到問題的定義。
我想要有兩個方法的類:一個設置對象=「線」和其它重寫爲「杆」的參數。
這是我走到這一步:
class foo():
def __init__(self, kind=None):
self.kind = kind
def __call__(self, kind=None):
return foo(kind=kind)
def my_print(self):
print (self.kind)
def line(self):
return self(kind='line')
def bar(self):
return self(kind='bar')
可悲的是,有了這個代碼,我可以實現我的目標,這樣做
a = foo()
a.bar().line().bar().bar().line().my_print()
但我想通過寫這封信,獲得相同的結果代碼
a = foo()
a.bar.line.bar.bar.line.my_print()
我該如何做到這一點?我想如何定義__call__
方法是錯誤的。在此先感謝您的幫助。
謝謝你的非常詳盡的回答! – Pezze