Objektově orientované programování (OOP) již není jen módní slovo. To je základ toho, jak dnes budujeme software a děláme datovou vědu. Je to všude. Od tlačítek na obrazovce až po složité algoritmy, které provozují simulovaná auta, OOP je technika za zdánlivým chaosem.
Takže co to vlastně je?
OOP je založeno na programovacím paradigmatu. Uspořádejte svůj kód podle objektů, nejen podle logiky. Představte si předměty jako digitální kontejnery. Kombinují informace a funkce. Tyto objekty lze definovat v jazycích jako Python, Java, C++ a Ruby. Představují věci z reálného světa. Okno na ploše. Uživatelský profil včetně jména a adresy. Tohle je hudba. Dokonce i simulované vozidlo. Jako objekt lze modelovat téměř cokoliv.
co je cílem? Zaměřte se na samotná data. Už se nemusíte starat o podrobné pokyny pro zpracování vašich dat. Ať to zvládne subjekt.
Jak modelovat data pomocí objektově orientovaného programování
Vytvoření OOP systému je proces. Děje se to po etapách.
Nejprve modelujte data. Rozhodněte, se kterými objekty má programátor pracovat. Naplánujte si, jak budou interagovat. Jakmile nadefinujete své modely, můžete je upravit jako třídy.
Třídy jsou plány. Definují vlastnosti a metody.
- Atribut je charakteristika. Popisuje stav objektu.
- Metoda je operace. Definují, co objekt může dělat.
Když jsou objekty vytvořeny ze třídy, komunikují prostřednictvím určitých rozhraní nazývaných zprávy. Jeden objekt odešle požadavek jinému objektu. Přijímající objekt jej zpracovává. Tato struktura umožňuje opětovné použití kódu. Dědičnost a polymorfismus často umožňují použití tříd vytvořených pro jeden program v jiném. Šetří čas. Redundance je snížena.
Zabezpečení prostřednictvím struktury
Tato složitost má skryté výhody. OOP poskytuje zapouzdření. To znamená, že funkce a proměnné v rámci objektu mohou být skryté.
Proč je to důležité?
To vytváří bezpečné systémy. Řízení přístupu k datům pomáhá předcházet náhodným škodám. Uživatelé interagují s čistým uživatelským rozhraním. Nevidí změť kódu pod kapotou. Prostě mají výsledky.
Pro začátečníky se kód může zdát komplikovaný. Je to vícevrstvé. Ale pro vývojáře je to zvládnutelné. Je to bezpečné. A toto lze rozšířit.
Proč je to pro váš pracovní postup důležité
C++ asi nepíšete každý den. Ale pokud používáte Python pro analýzu dat, pravděpodobně používáte principy OOP. Pandas DataFrames? Objekty. Scikit-learn modely? Objekty.
Pochopení tohoto paradigmatu změní způsob, jakým navrhujete řešení. Už žádné myšlenky na lineární skripty. Začněte přemýšlet o komponentech.
“Cílem objektově orientovaného programování je zaměřit se na samotné objekty a jejich data, spíše než vyžadovat logiku nebo operace k jejich provedení.”
Je v tom víc než jen psaní kódu. Uspořádává vaše myšlenky. Jakmile si osvojíte OOP, už nebudete muset s jazykem bojovat. Začnete s ním pracovat.
Krajina se rychle mění. Objeví se nové jazyky. Ty staré se vyvíjejí. Ale koncept zůstává stejný. Data a akce spolu souvisejí.
Záleží na tom, jestli znám rozdíl mezi Java a Visual Basic.NET? Ne tak moc. Princip je stejný.
Vytváříte systémy, které mohou dýchat
Datoví vědci nepíší jen skripty. Vytvářejí systémy. V ekosystému Pythonu jsou systémy stavěny pomocí objektově orientovaného programování (OOP). Není to jen módní slovo. Toto je strukturální základ, na kterém skutečně fungují knihovny jako pandy, scikit-learn a TensorFlow.
Při importu knihovny se nativní kód nenačte. Modul se načítá. Tyto moduly obsahují třídy. Třídy jsou kouzlem zapouzdření.
Abyste ji mohli používat, nemusíte číst zdrojový kód knihovny. Vývojáři nepotřebují vědět, jak funguje vnitřní logika. Jediné, co potřebujete vědět, co dělají a jak se chovají. Toto je podstata interakce: zavoláte metodu, dostanete výsledek. Zbytek je skrytý.
Proč Python dominuje Data Science
Python není nejrychlejší jazyk. Není to nejúčinnější z hlediska využití paměti. Ale je nejdostupnější. To je podstata Data Science.
Knihovna je sada modulů. Modul je sada tříd. Třída je plán pro objekty. Tato hierarchie není náhodná. Je určen k opětovnému použití. Aby bylo jasno. Pro škálovatelnost.
Když datový vědec importuje „pandy“, neimportuje se jednoduchý seznam funkcí. Načte se komplexní síť objektů: DataFrame, Series, Index. Každý z nich je instancí třídy. Každý z nich má vlastnosti (například .shape a .dtype ) a metody (např. .dropna() a .merge() ).
Pochopení této struktury změní způsob, jakým používáte Python. Přestaňte přemýšlet: “Jakou funkci mám zavolat?” Začněte přemýšlet: “S jakými předměty musím pracovat?”
Popis klíčových principů OOP
OOP není těžké. Je to jen konkrétní. Je založen na šesti klíčových konceptech. Jakmile je zvládnete, už nikdy nebudete muset bojovat s kódem.
1. Třída: Plán, ne produkt
Třída je model. Jedná se o blok kódu, který definuje proměnné (vlastnosti) a funkce (metody). Představte si to jako vykrajovátka na cukroví. Forma není sušenka. Tato forma se používá k vytváření cookies.
Třída může vytvořit mnoho objektů. Každý objekt je jedinečný. Všechny však sdílejí společnou základní strukturu.
2. Objekt: Konkrétní data
Objekt je specifická instance třídy. Toto jsou cookies. Má vlastnosti nebo vlastnosti. Má metody, které určují jeho chování.
Pokud máte třídu User, váš objekt se může jmenovat user1. uživatel1 má vlastnosti jako jméno a e-mail. Existují metody jako login() a logout(). Uložený stav objektu. Třídy jsou definovány pravidly.
3. Zapouzdření: Skrytí nepořádku
Zapouzdření slouží k ochraně. Zabalte nezpracovaná data do kapsle. za co? Aby nedošlo k poškození. Aby se zabránilo zneužití (nezákonnému použití).
Uživatelé nemohou přímo upravovat interní proměnné. Udělejte to pomocí metod. Tímto způsobem zachováte integritu dat. Zapouzdření brání vědcům dat ve snaze přepsat logiku ověřování v rámci knihovny. Vnitřní stav zůstává v pořádku.
“Zapouzdření skrývá metody a vlastnosti před vnějším světem, čímž zabraňuje vnějšímu rušení.”
4. Abstrakce: Skrytí složitosti
Abstrakce je uživatelsky přívětivá vrstva. Skryjte data, která nejsou pro koncové uživatele důležitá.
Nemusíte vědět, jak scikit-learn interně vypočítá redukci gradientu. Nemusíte se starat o maticové výpočty. Vy






























