Menu
CoddyTech

Классы и объекты

Часть раздела Объектно-ориентированное программирование путешествия по Python на Coddy. Урок 3 из 64.

Классы и объекты служат разным целям. Класс — это чертёж, а объект — это то, что вы создаёте по этому чертежу.

Вот пример класса:

class Dog:
	# общее для всех собак
    species = "Canis familiaris"

Теперь мы можем получить доступ к атрибуту класса напрямую с помощью Dog.species, где Dog — это имя класса:

print(f"Class species: {Dog.species}")
# Вид класса: Canis familiaris

Это обращается к данным самого класса, а не какого-либо конкретного объекта.

Теперь рассмотрим, как это работает с объектами. Создай объекты класса Dog:

dog1 = Dog()
dog2 = Dog()

У объектов могут быть индивидуальные атрибуты, которых не может быть у классов:

dog1.name = "Nicky"
dog1.breed = "Siberian Husky"

dog2.name = "Teemon" 
dog2.breed = "Shu'ali"

Сравни, что могут делать классы и объекты:

print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")

Вывод:

Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiaris

Ключевое различие: Класс Dog определяет, что общего у всех собак, а объекты dog1 и dog2 представляют собой конкретных отдельных собак с уникальными свойствами.

challenge icon

Задание

Легко

Дополните код, чтобы создать класс Student и два объекта студентов. Добавьте каждому студенту разные имена и оценки.

  • student.py: здесь вы определите класс Student.
  • driver.py: основной файл выполнения, который импортирует и использует ваш класс Student:

    Дополните код, чтобы создать класс Student и два объекта студентов. Добавьте каждому студенту разные имена и оценки.

    Имя student1 — "Alice", оценка — "A".

    Имя student2 — "Bob", оценка — "B".

Попробуйте сами

# Импортируйте класс Student
from student import Student

# TODO: Создайте два объекта класса Student


# TODO: Добавьте атрибуты объекту student1


# TODO: Добавьте атрибуты объекту student2


# Выведите информацию об учениках
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование

Потренируйтесь самостоятельно: Онлайн-компилятор Python