Python中的方括号和点表示法之间有什么区别?
我来自Javascript背景(可以同时通过属性.
和[]
符号访问属性),所以请原谅我,但是Python中两者之间的区别到底是什么?
从我的实验它seeems认为[]
应始终使用,既得到的索引list
或set
并从在某个键中获得的价值dictionary
。这是否正确?如果不正确,什么时候.
在Python中使用?
回答:
点运算符用于访问任何对象的属性。例如,复数
>>> c = 3+4j
具有(其中包括)两个属性real
和imag
:
>>> c.real3.0
>>> c.imag
4.0
除此以外,它还有一个方法conjugate()
,它也是一个属性:
>>> c.conjugate<built-in method conjugate of complex object at 0x7f4422d73050>
>>> c.conjugate()
(3-4j)
方括号表示法用于访问集合的成员,无论是字典还是其他映射,都是通过键访问的:
>>> d = {'a': 1, 'b': 2}>>> d['a']
1
…或在列表或字符串等序列的情况下按索引:
>>> s = ['x', 'y', 'z']>>> s[2]
'z'
>>> t = 'Kapow!'
>>> t[3]
'o'
这些集合还分别具有以下属性:
>>> d.pop<built-in method pop of dict object at 0x7f44204068c8>
>>> s.reverse
<built-in method reverse of list object at 0x7f4420454d08>
>>> t.lower
<built-in method lower of str object at 0x7f4422ce2688>
…在上述情况下,这些属性恰好是方法。
尽管所有对象都具有某些属性,但并非所有对象都具有成员。例如,如果我们尝试使用方括号表示法访问我们的复数成员c
:
>>> c[0]Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'complex' object is not subscriptable
…我们得到一个错误(这是有道理的,因为复数没有明显的方法拥有成员)。
这是可能的定义如何[]
,并.
在用户定义的类访问工作,采用特殊的方法__getitem__()
和__getattr__()
分别。解释如何做超出了这个问题的范围,但是您可以在Python
Tutorial中阅读更多有关它的内容。
以上是 Python中的方括号和点表示法之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/410445.html