我發現自己寫了很多功能,我希望能夠運用關於例如集合的參數x, y, ...
,和。 [(x1, y1, ...), (x2, y2, ...), ...]
。python裝飾器可以使一個函數能夠智能地操作單個對象和集合對象嗎?
是否有一個清晰和簡單的裝飾,圖案或技術來編寫這樣的功能?
下面是一個任意例如:
def awesome(func):
# ???
@awesome
def mult(a, b):
return a * b
mult(3, 4) # should return 12
mult((3, 4)) # should return 12 or possibly (12,)
mult(((3, 4), (2, 3), [3, 3])) # should return (12, 6, 9)
mult([(3, 4), [4, 5]]) # should return (12, 20)
整個想法並不好,因爲你最終不知道進出這個函數的內容,這使得它很難找到錯誤。只需鍵入'(mul(* x)for x in xs)' – 2011-05-25 17:15:27
就是有道理的。向上。 – 2011-05-25 17:18:41
爲什麼我們不使用管道輸入和運算符重載?似乎更直觀和pythonic – Pwnna 2011-05-25 18:02:04