Оператор dot используется для доступа к атрибутам любого объекта.Например, комплексное число
>>> c = 3+4j
имеет (среди прочих) эти два атрибута real
и imag
:
>>> c.real
3.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.
(В принципе) используйте '[]' для доступа к индексам и для создания списков. Используйте '.' для доступа к методам объектов – RafaelC
@RafaelCardoso:' .' для атрибутов в целом, а не только для методов. – Olaf