Menu
Coddy logo textTech

Атрибуты

Часть раздела Object Oriented Programming путешествия по Python на Coddy — урок 6 из 64.

Атрибуты — это данные или переменные, которые принадлежат классу или его объектам. Они хранят информацию о состоянии объекта.

Существует два типа атрибутов: 

Атрибуты класса — общие для всех объектов класса:

class Student:
    school_name = "Python Academy"  # атрибут класса

Атрибуты экземпляра — уникальные для каждого объекта:

class Student:
    school_name = "Python Academy"
    
    def set_info(self, name, age):
        self.name = name    # атрибут экземпляра
        self.age = age      # атрибут экземпляра

Создайте объекты студентов и установите их индивидуальные данные:

student1 = Student()
student2 = Student()

student1.set_info("Alice", 20)
student2.set_info("Bob", 22)

Доступ к атрибутам экземпляра (уникальным для каждого объекта):

print(student1.name)    # Alice
print(student2.name)    # Bob
print(student1.age)     # 20

Доступ к атрибутам класса (одинаковым для всех объектов):

print(student1.school_name)    # Python Academy
print(student2.school_name)    # Python Academy
print(Student.school_name)     # Python Academy

Вывод:

Alice
Bob
20
Python Academy
Python Academy
Python Academy

Ключевое отличие: Атрибуты класса являются общими для всех объектов, в то время как атрибуты экземпляра уникальны для каждого объекта. Используйте self.attribute_name для атрибутов экземпляра и просто attribute_name для атрибутов класса.

Шпаргалка

Атрибуты — это данные или переменные, которые принадлежат классу или его объектам.

Атрибуты класса — общие для всех объектов класса:

class Student:
    school_name = "Python Academy"  # атрибут класса

Атрибуты экземпляра — уникальны для каждого объекта, определяются с помощью self:

class Student:
    school_name = "Python Academy"
    
    def set_info(self, name, age):
        self.name = name    # атрибут экземпляра
        self.age = age      # атрибут экземпляра

Доступ к атрибутам экземпляра:

student1 = Student()
student1.set_info("Alice", 20)
print(student1.name)    # Alice

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

print(student1.school_name)    # Python Academy
print(Student.school_name)     # Python Academy

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

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

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

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