5
A
回答
13
形成的函數調用操作的括號內,逗號是不建立的元組,但對於分離參數。因此,type(3,)
相當於type(3)
。語法允許在參數列表末尾添加一個逗號。你需要一對額外的括號中建立一個元組:
>>> def f(x):
... print x
...
>>> f(3)
3
>>> f(3,)
3
>>> f((3,))
(3,)
6
內置的type()
是一個函數,所以逗號被解析爲參數分隔符而不是元組構造函數。
>>> type(3,)
<type 'int'>
>>> type((3,))
<type 'tuple'>
2
我懷疑的Python忽略函數參數後面的逗號:
def f (a):
print a
print type(a)
>>> f(3,)
3
<type 'int'>
使用逗號分隔值沒有括號來創建一個元組是伎倆,無處不在。列表解析就是一個很好的例子:
>>> [a,a*2 for a in range(4)]
File "<stdin>", line 1
[a,a*2 for a in range(4)]
^
你必須這樣做:
>>> [(a,a*2) for a in range(4)]
[(0, 0), (1, 2), (2, 4), (3, 6)]
列表拆包工作正常,雖然如此,這是一個有點變量,其中無界,逗號分隔值是允許的:
>>> [(a,b) for a, b in zip(range(4),range(4))]
[(0, 0), (1, 1), (2, 2), (3, 3)]
0
在func(bunch_of_args)
你被允許跟隨最後ARG用逗號,就像在
alist = [1, 2, 3, ]
相關問題
- 1. 爲什麼python statistics.mean()返回一個int類型,而不是float
- 2. 爲什麼Python返回整數而不是字符串
- 3. 爲什麼「0」.split(「|」)返回兩個元素而不是一個?
- 4. 爲什麼不是PDO_MySQL返回整數?
- 5. 爲什麼選擇SCOPE_IDENTITY()返回小數而不是整數?
- 6. Python:爲什麼str.split()返回一個列表while str.partition()返回一個元組?
- 7. 爲什麼這個python操作返回一個元組?
- 8. 爲什麼MonadTrans不是整個類型?
- 9. 爲什麼從PowerShell函數返回類型始終是一個數組?
- 10. 爲什麼MATCH返回整數相關性而不是float
- 11. 爲什麼控制檯類中的Read()返回一個整數?
- 12. Python 3:datetime.strptime()返回一個整數列表而不是字符串
- 13. Python腳本返回一個數組而不是單個值
- 14. 這個C函數爲什麼不返回一個整數值?
- 15. 爲什麼func1的返回類型是Unit,而func2是Int?
- 16. 爲什麼我的數組搜索返回0而不是1?
- 17. 爲什麼Firebase返回數組而不是字典?
- 18. 爲什麼laravel查看返回數組?而不是價值?
- 19. 從庫而不是數組返回什麼樣的集合類型?
- 20. 爲什麼C不允許數組返回類型?
- 21. 函數返回記錄類型還是什麼都不返回?
- 22. 爲什麼返回-1而不是0?
- 23. Python,元組索引必須是整數,而不是元組?
- 24. 爲什麼我的Scala函數返回類型Unit而不是最後一行是什麼?
- 25. 爲什麼這個計算不會返回一個整數?
- 26. 爲什麼delete會返回刪除的元素而不是新的數組?
- 27. 爲什麼當這個數組顯然是4個元素時,這個數組返回的長度是3?
- 28. 爲什麼scipy.io.wavfile.read不會返回一個元組?
- 29. 獲取類型錯誤:列表索引必須是整數,而不是元組,想不通爲什麼
- 30. 爲什麼MarshalByRefObject.InitializeLifetimeService返回一個對象而不是ILease?
無論「f」採用多少個參數,逗號都將被解析爲參數分隔符。 – 2012-04-03 21:43:21
你是對的 - 我只是在我的最後證實了這一點。將編輯。 – 2012-04-03 21:43:58