点运算符用于访问任何对象的属性。例如,复数
>>> c = 3+4j
具有(其中包括)两个属性
real和
imag:
>>> c.real3.0>>> c.imag4.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中阅读更多有关它的内容。



