Menu
Coddy logo textTech

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

Часть раздела Object Oriented Programming путешествия по 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".

Шпаргалка

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

Определение класса:

class Dog:
    # Class attribute - shared by all instances
    species = "Canis familiaris"

Доступ к атрибутам класса напрямую:

print(Dog.species)  # Canis familiaris

Создание объектов на основе класса:

dog1 = Dog()
dog2 = Dog()

Добавление индивидуальных атрибутов объектам:

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

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

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

print(f"{dog1.name} is a {dog1.breed}")  # Individual attributes
print(f"Species: {Dog.species}")          # Class attribute

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

# Импортируйте класс 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Проверьте себя

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

Все уроки раздела Object Oriented Programming