-5
A
回答
1
我找到了一種方法做你所要求的:
class AddableInt(int):
def __call__(self, n):
return AddableInt(self + n)
def add(n):
return AddableInt(n)
add(5)(10)(20) # evaluates to 35
這工作,因爲調用add(5)
創建與5號__init__
方法的價值AddableInt
在AddableInt
宣佈,所以它只是使用int
的默認構造函數。隨後的調用(10)(20)
每個調用AddableInt
的__call__
方法,它將自變量添加到自身並創建一個新的AddableInt
。
老答案:
Python不支持你所要求的東西。我可以拿出最接近的是:
from functools import partial
def add(n=None, terms=None):
if n is None:
return sum(terms) if terms else 0
else:
if terms:
terms.append(n)
else:
terms = [n]
return partial(add, terms=terms)
這樣稱呼它:
add(5)(10)(20)() # Note the extra parenthesis on the end
更好的辦法是使用:
sum((5,10,20))
-1
在Python中,你可以定義任意參數的函數像這樣:
def add(*args):
total=0
for num in args:
total+=num
#or whatever you want to do with the numbers
return total
The *
告訴代碼,從這裏到結尾的任何和所有參數都是可選的,並且可能有多個參數。它將所有額外的參數存儲在一個元組中。所以,如果你叫add(5, 10, 20)
它會返回35,它會保存這樣的numbrs:
args=(5, 10, 20)
這是一個元組。它將在一個值內存儲多個值。所以參數args將等於整個元組。
This link可能會幫助你多一點。
相關問題
- 1. 使用python在json中添加方括號
- 2. 方法添加在Python
- 3. 方括號語法
- 4. 添加LinqToHqlGeneratorsRegistry不包括方言方法
- 5. 在Python中,何時使用方括號或圓括號?
- 6. 在方括號
- 7. 在方括號中使用classList方法
- 8. 在遞歸函數中添加括號
- 9. Notepad ++:在時間戳中添加括號
- 10. 在鏈接周圍添加尖括號
- 11. 有方括號的方括號或方括號內
- 12. 無法在emacs中輸入花括號和方括號
- 13. 括號中(由:).sorted方法
- 14. 使用bash在文件的每一行中添加方括號
- 15. 在Python中添加__init __()方法
- 16. Php:方括號添加函數有多少複雜性[即O(N),O(1),...]?即$ X [] =「值」
- 17. 留出在方法調用中括號
- 18. 參數用括號在Python
- 19. Opencv和python參數中的方括號
- 20. 方括號
- 21. 用方括號
- 22. 何時在方格中使用方括號和大括號?
- 23. 如何獲取文本在方括號中包含方括號?
- 24. JFlex Lexer區分「類括號」和「方法括號」
- 25. 找不到符號:方法添加
- 26. 添加大括號GGPLOT2然後用ggsave
- 27. 當添加括號時,preg_match失敗
- 28. Eclipse - 不自動添加括號
- 29. Typescript編譯器忘記添加括號?
- 30. 匹配方括號內的內容,包括嵌套方括號
它工作正常。但是,最後可以跳過額外的括號嗎? –
@WasifAle:不可以。唯一可行的方法是每次調用函數都會返回一個可調用的函數,除非有一些標記已經到達。我讓哨兵一個空電話。嚴重的問題,爲什麼你要這個世界?它非常和諧。我想不出任何這種調用函數的有利方式。爲什麼你會比其他方式調用函數更喜歡這個? –
謝謝史蒂芬,實際上這是一個作爲一項任務給我的問題。即使我不知道爲什麼這個東西可以更容易地完成,但我卻不知道。無論如何謝謝你的幫助。 –