Omówienie enkapsulacji w Pythonie
Hermetyzacja jest jedną z czterech podstawowych koncepcji programowania obiektowego. Gdy istnieje potrzeba grupowania danych, a kolejne podprogramy, które współpracują i działają w jednym miejscu, a także potrzeba ukrycia skomplikowanych szczegółów przed użytkownikiem, używamy enkapsulacji, aby zrozumieć „enkapsulację w Pythonie”, musimy głęboko zanurkować i zrozumieć jak enkapsulacja pojawia się na obrazie w języku programowania. Hermetyzacja pomaga w ograniczeniu dostępu do metod i zmiennych. Zapobieganie przypadkowej modyfikacji danych, a osiąga się to za pomocą metod niepublicznej zmiennej instancji i niepublicznej zmiennej instancji. Klasa hermetyzuje metody i zmienne.
Zarządzanie nazwami w języku Python
Python oznacza ograniczenie dostępu do danych. Nie ma żadnych jawnych modyfikatorów dostępu, ale dostęp można kontrolować za pomocą funkcji zarządzania nazwami w języku Python. Domyślnie wszystkie metody i zmienne są publiczne w Pythonie. Więc jeśli jakikolwiek identyfikator ma dwa wiodące znaki podkreślenia, staje się niepubliczną instancją w Pythonie. Określilibyśmy tutaj niepubliczne zmienne i metody wystąpienia, aby lepiej zrozumieć enkapsulację. Zasięg metody niepublicznej instancji jest tylko w obrębie jej własnej klasy i zaczyna się od jednego znaku podkreślenia lub dwóch znaków podkreślenia, tj. Podwójnego „_” lub „__” podwójnie przed zmienną lub metodą. Zakres niepublicznej zmiennej instancji należy również do jej własnej klasy lub do metody, w której jest zdefiniowany, i zaczyna się od dwóch znaków podkreślenia. Jeśli zdarzy nam się przegapić dwa podkreślenia, wówczas metoda ta jest uważana za metodę publiczną. Zanim zrozumiemy enkapsulację w Pythonie, musimy zrozumieć, jak działają zmienne i metody instancji publicznych i niepublicznych.
Zmienne wystąpienia niepublicznego
W Pythonie nie ma terminu „prywatny”, ponieważ żaden atrybut nie jest tak naprawdę prywatny w Pythonie (omówimy podstawową alternatywę w dalszej części artykułu). Zamiast tego nazywamy je zmienną wystąpienia niepublicznego. W ten sposób odsyłamy do zmiennych prywatnych i metod prywatnych.
Oto mały fragment kodu w pythonie dla niepublicznych zmiennych instancji:
Używamy słowa kluczowego self, ponieważ uzyskujemy dostęp do zmiennej klasy. Dane wyjściowe to:
Aby pobrać potwierdzenie zakresu niepublicznej zmiennej instancji, dodajemy print (abc .__ a) do kodu:
A zwracane dane wyjściowe to:
Widzimy zatem, że nie możemy używać niepublicznych zmiennych instancji poza klasą.
Metody wystąpienia niepublicznego
Funkcji niepublicznej instancji nie można wywołać bezpośrednio na obiekcie, ale tylko w obrębie klasy.
W tym fragmencie kodu mamy dwie metody, jedną niepubliczną instancję i drugą metodę publiczną. Metodę publiczną można łatwo wywołać, tworząc obiekt klasy abc, a następnie drukuje się jego wynik.
Gdy próbuje się zastosować podobne podejście w przypadku metody niepublicznej, występuje następujący błąd:
Ten program wygeneruje następujące dane wyjściowe:
Dlatego nie można uzyskać dostępu do metody instancji niepublicznej poprzez utworzenie obiektu. Aby uzyskać dostęp do niepublicznej metody instancji, możemy wywołać metodę __show1 () z metody show2 () tej samej klasy. Oto, w jaki sposób możemy wyświetlić metodę wystąpienia niepublicznego z metody publicznej tej samej klasy.
Wynik:
Dlatego metoda instancji niepublicznej nie może zostać wywołana poza jej klasą.
Pośredni sposób dostępu do zmiennej niepublicznej
Z uzasadnionych powodów nie można uzyskać dostępu do niepublicznych zmiennych instancji poza klasą, ale istnieje pośredni sposób modyfikacji wartości niepublicznej zmiennej instancji i dostępu za pomocą obiektów. Przyjrzymy się poniższemu fragmentowi kodu:
Wynik:
W powyższym programie mamy publiczne metody getNumber (self, num) i displayNumber () oraz jedną niepubliczną zmienną instancji. Po wywołaniu pierwszej metody przypisujemy wartość do niepublicznej zmiennej instancji, która jest wywoływana w metodzie displayNumber ().
Metoda setter służy do ustawiania wartości niepublicznej zmiennej instancji. Jest to pomocne w scenariuszach, w których można chcieć zmienić wartość niepublicznej zmiennej instancji po utworzeniu obiektów dla określonej zmiennej.
Zalety enkapsulacji w Pythonie
Hermetyzacja pomaga w ustanowieniu lepszego przepływu danych, a także w ochronie danych. Koncepcja enkapsulacji sprawia, że kod jest samowystarczalny. Hermetyzacja zapewnia wielką pomoc na poziomie wdrażania, ponieważ koncentruje się przede wszystkim na pytaniu „jak” pozostawiając kompleks „kiedy / gdzie” i jego złożoności. Ukrywanie danych w jednostce ułatwia enkapsulację, a także zabezpiecza dane.
Dlaczego potrzebujemy enkapsulacji w Pythonie?
Poniżej znajduje się kilka wymienionych powodów, dla których programiści uważają, że koncepcja enkapsulacji jest przydatna i dlaczego koncepcje obiektowe rządzą w większości języków programowania, które działają w dzisiejszym scenariuszu.
- Istnieje potrzeba dobrze zdefiniowanej interakcji w każdej aplikacji, kapsułkowanie pomaga w osiągnięciu tego.
- Koncepcja programowania obiektowego w Pythonie koncentruje się na tworzeniu kodu wielokrotnego użytku. Jest to również skracane jako DRY (Don't Repeat Yourself).
- Utrzymanie aplikacji jest łatwiejsze i zapewnione jest bezpieczeństwo.
- Klarowność procedury kodowania, ponieważ programiści powinni zwracać uwagę na cel klasy, a złożoność jest rozwiązywana systematycznie.
- Właściwa organizacja kodów pomaga w elastyczności kodu, a także pomaga w testowaniu jednostkowym.
- Użytkownicy uważają, że korzystanie z systemu jest łatwe, ponieważ są ukryte przed złożonym projektem związanym z backendem.
- Posiadanie i zamknięcie wszystkich podobnych danych w jednym miejscu zwiększa spójność wewnątrz modułu.
- Poprawia czytelność kodów i zmiany w jednej części kodu nie zakłócają innych części kodu.
- Hermetyzacja zapobiega przypadkowemu dostępowi do części kodu, ale nie jest to celowe, ponieważ obiekty przechowują krytyczne dane dla aplikacji i należy je zmienić w dowolnym miejscu w kodzie.
Wniosek - kapsułkowanie w Pythonie
Mówiąc prościej: Hermetyzacja w Pythonie oznacza, że wewnętrzna reprezentacja obiektu jest zasadniczo ukryta przed widokiem poza definicją obiektu. Pomaga to deweloperowi opracować przyjazną dla użytkownika obsługę końcową i zapewnia ochronę przed naruszeniem bezpieczeństwa, ponieważ kody są bezpieczne.
Polecane artykuły
Jest to przewodnik po enkapsulacji w Pythonie. Tutaj omawiamy potrzebę enkapsulacji w pythonie wraz z niepublicznymi zmiennymi instancji i metodami instancji. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -
- Co to jest Python
- Jest zorientowany obiektowo na Python
- Wzory w Pythonie
- Jak korzystać z enkapsulacji w C ++?
- Hermetyzacja w Javie | Przykłady
- Hermetyzacja w C (praca, przykłady)
- Wprowadzenie do enkapsulacji w JavaScript