前段时间我认为元组的构造函数是一对括号().
例:
>>> (1, )
(1, )
>>> type((1, ))
<type 'tuple'>
>>> t = (1, )
>>> type(t)
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)
但现在我知道这是逗号,.
所以,做同上面的事情:
>>> 1,
(1,)
>>> type(1,)
<type 'int'> # Why?
>>> 1,2,3
(1,2,3)
Run Code Online (Sandbox Code Playgroud)
但如果我这样做:
>>> type(1,2,3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type() argument 1 must be string, not int
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义,但是:
>>> t = 1,2,3
>>> type(t)
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)
最后:
>>> type((1,2,3))
<type 'tuple'>
Run Code Online (Sandbox Code Playgroud)
这里有一个问题:为什么在最后一个案例中如果元组只是括号需要括号1,2,3?
因为有时如果没有括号,表达式会不明确:如果没有括号,您将使用三个参数进行函数调用。由于某些函数确实需要采用三个参数,因此需要不同的表示形式来表达单个三元素元组参数。碰巧,type()可以用一到三个参数来调用。在后一种情况下,第一个参数必须是类名,因此当它看到整数时它会抱怨。
| 归档时间: |
|
| 查看次数: |
650 次 |
| 最近记录: |