ООП КОНЦЕПТУАЛЬНО
Курс: Python для аналітиків з нуля
1. НАВІЩО ЦЕ АНАЛІТИКУ
Не писати класи, а читати чужий код.
pandas.DataFrame, folium.Map, requests.Session — це класи. Коли бачиш obj.method() — це ООП. Розумітимеш документацію, зможеш налаштувати бібліотеки.
2. ТЕРМІНОЛОГІЯ
Клас (class)Шаблон для створення об'єктів. План будівлі, не сама будівля.
Об'єкт (object)Конкретний примірник класу. Будівля збудована за планом.
Метод (method)
Функція всередині класу. Дія яку вміє об'єкт: df.sort_values()
Атрибут (attribute)
Дані об'єкта. Властивість: df.columns, df.shape
__init__()Конструктор. Запускається при створенні об'єкта.
3. ТЕОРІЯ
3.1 Аналогія: Радіостанція
Уяви клас Radio:
- Атрибути: частота, потужність, позивний
Методи: передати(), прийняти(), змінити_частоту()Код без класів:
radio1_freq = 145.5Проблема: багато змінних, дублювання функцій.
Код з класом:
class Radio:3.2 Розбір по частинах
class Radio:Оголошення класу. Починається з великої літери.
def __init__(self, freq, power, callsign):Конструктор. Запускається при Radio(). Параметри стають атрибутами.
self
Посилання на об'єкт. "Сам себе". У всіх методах перший параметр.
self.freq = freqЗберегти параметр як атрибут об'єкта.
radio1 = Radio(145.5, 5, "Alpha")Створення об'єкта. Викликає __init__. radio1 — змінна, Radio — клас.
radio1.transmit("text")Виклик методу. Автоматично передається self (сам radio1).
3.3 Як це виглядає в бібліотеках
pandas:
import pandas as pdfolium:
import foliumrequests:
import requests4. КОД З КОМЕНТАРЯМИ
Клас для перехоплення:
class Intercept:5. РОЗБІР ПО РЯДКАХ
"""Docstring""" — опис класу/методу. Показується в help().
__str__(self) — магічний метод. Викликається при print(obj).self.signal — звернення до атрибута об'єкта всередині методу.
return self.signal > -50 — метод повертає True/False.6. ЗАВДАННЯ 1: ЧИТАННЯ КОДУ
Що виведе код?
class Counter:Відповідь: 2
Розбір: створили об'єкт з count=0, двічі додали +1, вивели 2.
7. ЗАВДАННЯ 2: ПРОМПТ ДЛЯ AI
Задача: клас для геолокації з кешуванням
Приклад промпту:
Напиши клас Geocoder з методом get_coords(address) що використовує Nominatim API. Додай кешування: якщо адреса вже шукалась — повернути з кеша (словник). Атрибути: cache (словник), api_url. Методи: get_coords(address) → (lat, lon) або (None, None). Додай docstrings.
8. НАВІЩО ЦЕ ТОБІ
У реальності ти НЕ будеш писати класи для аналітики. Але будеш читати:
Документацію pandas: DataFrame.groupby(), Series.apply()
Приклади folium: Map.add_to(), CircleMarker()
Код колег: session.post(), parser.find_all()Розумієш obj.method() → можеш налаштувати, змінити, дебажити.
9. РЕФЛЕКСІЯ
Я розумію різницю клас/об'єкт
Я знаю що таке метод та атрибут
Я бачу ООП у pandas та folium
Я розумію роль self
Я можу читати код з класами
10. ЩО ДАЛІ
Модуль 3.2: Читання коду з класами — розбір реальних прикладів pandas та folium
Головна думка: Клас = шаблон, об'єкт = примірник. pandas.DataFrame — клас, df — об'єкт. Розумієш це → розумієш документацію.