Объектно-ориентированное программирование. Общее представление

Сегодня мы поговорим об объектно-ориентированном программировании и о его применении в python.

Объектно-ориентированное программирование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов.

Класс — тип, описывающий устройство объектов. Объект — это экземпляр класса. Класс можно сравнить с чертежом, по которому создаются объекты.

Python соответствует принципам объектно-ориентированного программирования. В python всё является объектами - и строки, и списки, и словари, и всё остальное.

Но возможности ООП в python этим не ограничены. Программист может написать свой тип данных (класс), определить в нём свои методы.

Это не является обязательным - мы можем пользоваться только встроенными объектами. Однако ООП полезно при долгосрочной разработке программы несколькими людьми, так как упрощает понимание кода.

Приступим теперь собственно к написанию своих классов на python. Попробуем определить собственный класс:

>>>
>>> # Пример самого простейшего класса
... class A:
...  pass

Теперь мы можем создать несколько экземпляров этого класса:

>>>
>>> a = A()
>>> b = A()
>>> a.arg = 1 # у экземпляра a появился атрибут arg, равный 1
>>> b.arg = 2 # а у экземпляра b - атрибут arg, равный 2
>>> print(a.arg)
1

Классу возможно задать собственные методы:

>>>
>>> class A:
...  def g(self): # self - обязательный аргумент, содержащий в себе экземпляр
...  # класса, передающийся при вызове метода,
...  # поэтому этот аргумент должен присутствовать
...  # во всех методах класса.
...  return 'hello world'
...
>>> a = A()
>>> a.g()
'hello world'

И напоследок еще один пример:

>>>
>>> class B:
...  arg = 'Python' # Все экземпляры этого класса будут иметь атрибут arg,
...  # равный "Python"
...  # Но впоследствии мы его можем изменить
...  def g(self):
...  return self.arg
...
>>> b = B()
>>> b.g()
'Python'
>>> B.g(b)
'Python'
>>> b.arg = 'spam'
>>> b.g()
'spam'
Категория: Python | Добавил: ghost_mod (08.04.2016)
Просмотров: 300 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: