(Py) Object Oriented Programming*

Object Oriented Programming (OOP)

Wprowadzenie do OOP

OOP Klasy (Classes)

  • Klasy (Classes) – Umożliwiają tworzenie nowych struktur danych zdefiniowanych przez użytkownika. Zawierają one strukturę umożliwiającą opisanie obiektu. Przykładowa klasa Animal() nie będzie definiowała określonego zwierzęcia, a jedynie cechy jakie zwierze te, może posiadać. Np. nazwę, przynależność do klasy, gatunku, rodziny, królestwa itd.
  • Instancje (Instances) – Klasa stanowi strukturę określającą właściwości obiektu, natomiast instancja zawiera informacje o samym obiekcie. Na podstawie przykładowej klasy Animal(), może zostać powołana nowa instancja klasy np. pies, posiadająca wartość atrybutu domena równą eukarionty.
  • Atrybuty (Attributes) – Wartości przypisane do określonej instancji klasy.
  • Metody (Methods) – Funkcje tworzone wewnątrz klasy, pobierają argument (self).
  • Własności (Properties)

Inne zagadnienia związane z OOP

  • Instance Attributes – Każda klasa tworzy obiekt (Instancje), zawierający atrybuty współdzielone przez wszystkie metody danej instancji (self).
  • Class Attributes – Atrybut współdzielony pomiędzy wszystkimi obiektami (Instancjami) danej klasy.
Python nie wspiera podziału na prywatne / publiczne zmienne, atrybuty czy metody. Jedyne rozróżnienie jakie jest stosowane (Dodanie znaku _ przed zmienną, atrybutem czy metodą prywatną) stanowi dobrą praktykę lecz nie zmienia żadnych właściwości danej zmiennej, atrybutu czy metody.

Nazewnictwo

Nazwa klasy (Class)

  • Nazwa klasy powinna być pisana z dużej litery.
  • Poszczególne słowa tworzące nazwę klasy powinny zaczynać się z dużej litery.
  • Poszczególne słowa tworzące nazwę klasy powinny być pisane razem bez spacji czy innego znaku.
  • przykładowa nazwa klasy: NetDevice.

Nazwy zmiennych / metod prywatnych

  • Zmienna prywatna powinna zaczynać się od znaku „__”.
  • Metoda prywatna powinna zaczynać się od znaku „_”.

Zagadnienia związane z OOP

Metody specjalne (Magiczne)

  • __init__(self) – Metoda domyślnie aktywowana przym inicjacji instancji klasy (Metoda zwana inaczej Constructor).
  • __new__(cls) – (Metoda zwana inaczej Constructor).
  • __repr__(self) – Metoda domyślnie aktywowana przy próbie pozyskania wartości instancji klasy.
  • __del__(self) – Metoda domyślnie aktywowana przym usuwaniu instancji klasy.
  • __add__(self)
  • __str__(self)

Class Attributes

Link do przykładowego użycia zmiennej Class Attributes

  • Atrybuty klasy to atrybuty stanowiące własność samej klasy. Są udostępniane wszystkim instancjom danej klasy, związku z tym posiadają tę samą wartość względem każdej z nich. Atrybuty klas powinny być definiowane poza Metodami klasy, zwykle na górze tuż pod nagłówkiem klasy.

Class Methods

Link do przykładowego użycia Class Methods

  • Metody klasowe nie są powiązane z poszczególnymi instancjami klasy, a samą klasą.

Decorators Methods

  • @property – Wbudowana funkcja Python, zwracająca właściwości obiektu.
  • @setter – Wbudowana funkcja Python, umożliwiająca edycję właściwości obiektu.

Class Inheritance

Link do przykładowego użycia Class Inheritance

  • Klasa dziedzicząca (Inheritance) – Dziedziczy od innej klasy te same metody oraz właściwości.
    • Parent class – Klasa rodzicielska od której dziedziczone są metody oraz właściwości.
    • Child class – Klasa dziedzicząca metody oraz właściwości innej klasy.

Pozostałe tematy związane z podstawami Python-a

Funkcje / Object Oriented Programming

Edycja treści

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz