-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. NSNumberFormatter添加方括號
- 2. 使用python在json中添加方括號
- 3. 括號平衡的遞歸方法[python]
- 4. 方法添加在Python
- 5. 方括號語法
- 6. 添加LinqToHqlGeneratorsRegistry不包括方言方法
- 7. 在Python中,何時使用方括號或圓括號?
- 8. 爲什麼添加字典類的方法不需要括號?
- 9. 在方括號
- 10. 在方括號中使用classList方法
- 11. 有方括號的方括號或方括號內
- 12. 在數字鍵中添加括號
- 13. 在遞歸函數中添加括號
- 14. Notepad ++:在時間戳中添加括號
- 15. 在鏈接周圍添加尖括號
- 16. 無法在emacs中輸入花括號和方括號
- 17. 括號中(由:).sorted方法
- 18. PHP方括號語法
- 19. C#regex.split方法括號
- 20. 在方程中添加缺少的左括號
- 21. 使用bash在文件的每一行中添加方括號
- 22. Python中花括號和方括號有什麼區別?
- 23. 在Python中添加__init __()方法
- 24. 在參數括號之外添加到方法調用中的參數?
- 25. Php:方括號添加函數有多少複雜性[即O(N),O(1),...]?即$ X [] =「值」
- 26. awk添加右括號如果字段以開括號開頭
- 27. 留出在方法調用中括號
- 28. 參數用括號在Python
- 29. 大括號在Python POPEN
- 30. python記錄格式:如何添加括號
它工作正常。但是,最後可以跳過額外的括號嗎? –
@WasifAle:不可以。唯一可行的方法是每次調用函數都會返回一個可調用的函數,除非有一些標記已經到達。我讓哨兵一個空電話。嚴重的問題,爲什麼你要這個世界?它非常和諧。我想不出任何這種調用函數的有利方式。爲什麼你會比其他方式調用函數更喜歡這個? –
謝謝史蒂芬,實際上這是一個作爲一項任務給我的問題。即使我不知道爲什麼這個東西可以更容易地完成,但我卻不知道。無論如何謝謝你的幫助。 –