[英]Python: Why are int & list function parameters differently treated?
[英]Function parameters, list and int in python
我正在嘗試編寫一個以列表和int作為參數的函數。
functionName(*args, number)
#do stuff
數字需要是一個int但我在IDLE中不斷收到語法錯誤(這是我正在使用的IDE)
如果您的第一個參數是列表,請刪除*
:
def functionName(listob, number):
*args
語法用於捕獲任意數量的位置參數,並且必須在所有其他位置(和關鍵字)參數之后列出:
def functionName(number, *args):
因為它允許只用數量來叫你的函數,或任意數量的額外的參數; functionName(42, 'foo', 'bar')
導致number = 42
和args = ('foo', 'bar')
。 然而,這與傳入列表對象不同。
Python不會限制可以傳入的對象類型; *args
會將您的函數作為元組提供額外的參數,但這只是因為這是表示額外傳遞給函數的0個或更多參數的最佳方法。
在實際參數之前你不能有*args
。 所以你可以這樣稱呼它:
def foo(name, *args)
但是,您需要一個列表,因此不需要*args
。 擁有以下簽名將會很好:
def foo(name, lst)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.