Основы Python: Объектно-ориентированное программирование (ООП)
Шпаргалка по ООП (Дополнительно)
Lesson 7 of 7 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
🐍 Python OOP Cheat Sheet
Быстрая шпаргалка по всему, что вы узнали в квесте Python Basics: Object-Oriented Programming.
1. Классы и объекты
Определение класса
class Person:
def __init__(self, name, age):
self.name = name # Публичный атрибут
self.age = age # Публичный атрибут
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
Создание объекта
p1 = Person("John", 30)
p1.greet() # Hello, my name is John and I am 30 years old.
2. Атрибуты и методы
- Атрибуты = переменные, принадлежащие объекту (
self.attribute) - Методы = функции, принадлежащие объекту (
def method(self):)
Доступ к ним:
print(p1.name) # Атрибут
p1.greet() # Метод
3. Наследование
Базовое наследование
class Animal:
def __init__(self, name):
self.name = name
def sound(self):
print("Some generic sound")
class Dog(Animal):
def sound(self):
print("Woof woof!")
dog = Dog("Rex")
dog.sound() # Woof woof!
4. super()
Вызов конструктора родителя
class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name) # Вызов __init__ Animal
self.breed = breed
5. Переопределение методов
Дочерние классы могут заменять методы родителя:
class Cat(Animal):
def sound(self):
print("Meow!")
6. Приватные атрибуты и методы
Обозначение приватных с __
class Person:
def __init__(self, name, age):
self.name = name
self.__age = age # Приватный атрибут
def __print_age(self): # Приватный метод
print(self.__age)
def show_info(self):
print(self.name)
self.__print_age()
Прямой доступ к приватным членам приведёт к ошибке:
p = Person("Alice", 25)
p.__age # ❌ AttributeError
p._Person__age # ✅ Работает, но не рекомендуется
7. Ключевые термины ООП
| Термин | Значение |
|---|---|
| Class | Шаблон для объектов. |
| Object | Экземпляр класса с собственными данными. |
| Attribute | Переменная внутри объекта. |
| Method | Функция внутри класса. |
| Constructor | Специальный метод __init__, вызываемый при создании объекта. |
| Inheritance | Механизм повторного использования кода из другого класса. |
| Overriding | Переопределение метода из родительского класса. |
super() |
Вызов методов родительского класса. |
| Private | Префикс __ для обозначения внутреннего использования. |
8. Быстрые лучшие практики
- Используйте PascalCase для имён классов:
MyClass - Используйте
selfдля ссылки на текущий объект - Держите методы сфокусированными на одной задаче
- Используйте приватные члены для внутренних деталей
- Вызывайте
super().__init__()если переопределяете__init__в дочернем классе - Разумно выбирайте между композицией и наследованием — не наследуйте без причины
📌 Помните: ООП — это мышление в терминах имён существительных (объектов) и их поведения. Моделируйте реальные концепции, держите код организованным и повторно используйте его, где возможно.