Классы и объекты в Python с примерами
В этом уроке вы узнаете о классах и объектах Python, а также о том, как определить новый класс.
Объекты в Python
Объект в Python — это контейнер, содержащий данные и функциональные возможности.
Данные представляют объект в определенный момент времени. Поэтому данные объекта называются состоянием. Python использует атрибуты для моделирования состояния объекта. Функциональность представляет поведение объекта. Python использует функции для моделирования поведения. Когда функция связана с объектом, она становится методом объекта.
Другими словами, объект — это контейнер, содержащий состояние и методы. Прежде чем создавать объекты, вы сначала определяете класс. И из класса вы можете создать один или несколько объектов. Объекты класса также называются экземплярами класса.
Как определить класс?
Чтобы определить класс в Python, вы используете ключевое слово class, за которым следует имя класса и двоеточие. В следующем примере определяется класс Person:
class Person: pass
По соглашению вы используете имена классов в Python, написанные с заглавной буквы. Если имя класса содержит несколько слов, вы используете формат CamelCase, например SalesEmployee.
Поскольку класс Person неполон, вам нужно использовать оператор pass, чтобы указать, что вы добавите к нему дополнительный код позже.
Чтобы создать экземпляр класса, вы используете имя класса в круглых скобках, например:
person = Person()
При распечатке объекта person вы увидите его имя и адрес памяти:
class Person: pass print(person)
Выход:
<__main__.Person object at 0x000001C46D1C47F0>
Чтобы получить идентификатор объекта, вы используете функцию id(). Например:
print(id(person))
Выход:
1943155787760
Идентификатор объекта уникален. В CPython id() возвращает адрес объекта в памяти. Функция hex() преобразует целое число, возвращаемое функцией id(), в шестнадцатеричную строку нижнего регистра с префиксом 0x:
print(hex(id(person)))
Выход:
0x1c46d1c47f0
Объект person является экземпляром класса Person. Функция isinstance() возвращает True, если объект является экземпляром класса:
print(isinstance(person, Person)) # True
Класс также является объектом в Python
Все в Python является объектом, включая классы.
Когда вы определяете класс Person, Python создает объект с именем Person. Объект Person имеет атрибуты. Например, вы можете найти его имя, используя атрибут __name__:
print(Person.__name__)
Выход:
Person
Объект Person имеет тип type:
print(type(Person))
Выход:
<class 'type'>
Класс Person также имеет поведение. Например, он может создать новый экземпляр:
person = Person()