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