Zrozumienie abstrakcji: jak działa abstrakcja w Pythonie?

Opublikowany: 2023-04-08

Python jest jednym z najczęściej używanych języków programowania. Python ułatwił użytkownikom wydajniejsze programowanie za pomocą abstrakcji. Ta koncepcja sprawia, że ​​użytkownicy koncentrują się tylko na istotnych informacjach i ukrywają zbędne szczegóły.

Spis treści

Czym jest abstrakcja w Pythonie?

Abstrakcja jest zdefiniowana jako podstawowa koncepcja programowania obiektowego. Pomaga w enkapsulacji danych implementacji klasy od jej użytkowników. Abstrakcjaw Pythonie pomaga w interakcji z klasą bez zrozumienia jej wewnętrznego działania.Osiąga się to za pomocą abstrakcyjnych interfejsów i klas.

Abstrakcjaw Pythonie odnosi się ponadto do zarządzania złożonością poprzez ukrywanie niepotrzebnych informacji przed użytkownikiem.Dzięki temu kodowanie jest uproszczone. Użytkownik jedynie wchodzi w interakcję z podstawową implementacją klas i funkcji; wewnętrzna praca pozostaje ukryta.

Zasadniczo użytkownik zna tylko cel funkcji; nie wiedzą, jak to się udaje. Zauważ, że abstrakcji nie można utworzyć, tzn. nie możemy tworzyć obiektów dla klasy abstrakcji. Sprawia, że ​​Twój kod jest bardziej rozszerzalny, czytelny i łatwiejszy w utrzymaniu. Ponadto pozwala uniknąć powielania. Skupienie się tylko na głównej koncepcji może pomóc poprawić wydajność pracy.

Jak działa abstrakcja w Pythonie?

Kluczową rolą abstrakcji jest ukrycie wewnętrznego działania kodu. Interakcje z użytkownikami są realizowane za pośrednictwem podstawowej implementacji. Koncepcja abstrakcji w Pythonie działa przy użyciu abstrakcyjnych klas i metod.

Klasa abstrakcyjna jest zdefiniowana jako klasa wymieniona w kodzie, która ma metody abstrakcyjne. Metody abstrakcyjne nie mają żadnej implementacji; wszystkie implementacje są wykonywane w ramach podklas.

Python używa samozmiennych definicji metod podczas inicjalizacji zmiennej. Metoda klasowa dostarcza informacji o klasie. Ta metoda musi zadeklarować self jako parametr, aby zdefiniować metodę natychmiastową.

Możesz łatwo zrozumieć działanieabstrakcji danych w Pythonie za pomocą rzeczywistego scenariusza.Robiąc zakupy online, kupujesz lub dodajesz produkty do koszyka, a następnie płacisz za nie. Jednak po kliknięciu w dostępne opcje wykonują one wewnętrznie kilka funkcji, których realizacja jest niedostępna dla użytkownika. Użytkownik widzi tylko wymagany widok. W tym przypadku działa abstrakcja, szukając korzyści z klasyfikacji hierarchicznej, tj. złożone moduły są podzielone na łatwe do zarządzania części.

Znaczenie abstrakcji w Pythonie

Oto jak abstrakcja potwierdza swoje znaczenie w różnych funkcjach w Pythonie, aby uprościć przebiegi programowania w odpowiednim języku.

  • Abstrakcjaw Pythonie pomaga ukryć nieistotną klasę/dane/proces, a tym samym zmniejsza złożoność kodowania.
  • Poprawia wydajność aplikacji.
  • Abstrakcja w Pythonie umożliwia użytkownikom tworzenie skalowalnych i elastycznych funkcji, które można łatwo dostosować.

Klasy bazowe abstrakcji

W Pythonie abstrakcyjna klasa bazowa odnosi się do wspólnego programu użytkowego interfejsu dla wielu podklas. Mówiąc prościej, działa jako plan dla innych klas. Strona trzecia może go używać do czerpania korzyści z implementacji, takich jak wtyczki.

Definiując abstrakcyjne klasy podstawowe, można opracować wspólny interfejs programowania aplikacji (API) dla różnych podklas. Jest to korzystne podczas pracy w dużych zespołach, tak aby nie trzeba było zapamiętywać wszystkich zajęć. Co więcej, osoby trzecie nie muszą prowadzić wszystkich zajęć w bibliotece.

Możesz użyć tej funkcji abstrakcji danych w Pythonie, jeśli pracujesz z ogromną bazą kodu i masz trudności z zapamiętaniem wszystkich klas.

Ucz się online na kursach nauki o danych na najlepszych światowych uniwersytetach. Zdobądź programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Funkcjonalność klas abstrakcyjnych

W przeciwieństwie do innych języków programowania wysokiego poziomu, Python nie zapewnia własnej klasy abstrakcyjnej. Możesz użyć metody ABC Pythona, która oferuje podstawowe i niezbędne narzędzia do definiowania abstrakcyjnych klas bazowych (ABC). Zasadniczo ABC zapewnia funkcję wirtualnych podklas. Są to klasy, które nie dziedziczą właściwości z klasy i nadal można je zidentyfikować

isinstance() i issubclass().

Poniższy moduł pomoże Ci opracować własne ABC.

z abc import ABC

klasa MojeABC(ABC):

przechodzić

Jak wspomniano powyżej, moduł ABC oferuje metaklasę, tj. ABCMeta, która definiuje definiowanie ABC, oraz klasę pomocniczą ABC do definiowania ABC za pomocą dziedziczenia.Ponadto moduł ABC oferuje dekorator@abstractmethod do reprezentowania metod abstrakcyjnych.ABC jest zdefiniowane w taki sposób, że słowo kluczowe@abstractmethod dekoruje metody abstrakcyjne w klasie bazowej podczas ich tworzenia.Ponadto konkretne metody są reprezentowane jako implementacje klasy bazowej.

Poniższaabstrakcja w przykładzie Pythona pomaga lepiej zrozumieć funkcjonalność klas abstrakcyjnych.

Zapoznaj się z naszymi popularnymi kursami Data Science

Executive Post Graduate Program in Data Science z IIITB Profesjonalny program certyfikatów w dziedzinie nauki o danych w podejmowaniu decyzji biznesowych Master of Science in Data Science na University of Arizona
Zaawansowany program certyfikacji w nauce o danych z IIITB Profesjonalny program certyfikatów w dziedzinie nauki o danych i analityki biznesowej na University of Maryland Kursy nauki o danych

from abc import ABC, metoda abstrakcyjna

Przedmiot klasy (ABC):

wynik def (własny):

przechodzić

klasa Angielski(Przedmiot):

wynik def (własny):

print("Wynik to 80")

klasa Matematyka(Przedmiot):

wynik def (własny):

print("Wynik to 75")

klasa Nauka (Przedmiot):

wynik def (własny):

print("Wynik to 85")

klasa Literatura (Przedmiot):

wynik def (własny):

print("Wynik to 70")

e= angielski()

e.wynik()

m = Matematyka()

m.wynik()

s = nauka()

s.score()

l = literatura()

l.wynik()

Wyjście:

Wynik to 80

Wynik to 75

Wynik to 85

Wynik to 70

Przyjrzyjmy się implementacji powyższego kodu.

Zaimportowaliśmy moduł ABC, aby utworzyć abstrakcyjną klasę bazową. Klasa Subject dziedziczy klasę ABC i zdefiniowana jest metoda abstrakcyjna „score()” .Następnie odziedziczyliśmy klasę bazową z różnych podklas i w unikalny sposób zaimplementowaliśmy metodę abstrakcyjną. Obiekty (tutaj nazwy podmiotów) są tworzone w celu wywołania metody abstrakcyjnej. Wreszcie, wynik każdego przedmiotu jest dostarczany jako wynik.

Sprawdź naszebezpłatne kursy nauki o danych, aby uzyskać przewagę nad konkurencją.

Abstrakcja w Pythonie Przykład: aplikacje w świecie rzeczywistym

1. Skrobanie sieci

Jednym z najlepszych rzeczywistych zastosowań Pythona jest web scraping. Wskazuje to na zbieranie ogromnych ilości danych przez firmy w celu uzyskania informacji o klientach i podejmowania opłacalnych decyzji. Koncepcja abstrakcji wyświetla tylko wymagane informacje, a tym samym pomaga firmom w łatwym dostępie do danych klientów. Ponadto narzędzia takie jak Selenium, PythonRequest i MechanicalSoup są używane w programowaniu w Pythonie do tworzenia aplikacji do skrobania stron internetowych.

2. Uczenie maszynowe i sztuczna inteligencja

Możemy rozważyćprzykład abstrakcji w Pythonie w domenie uczenia maszynowego i sztucznej inteligencji.Łatwość kodowania i łatwość zrozumienia koncepcji abstrakcji pomaga Pythonowi obsługiwać złożone obliczenia wymagane do tworzenia modeli uczenia maszynowego. Biblioteki języka Python, takie jak Pandas, Keras, NumPy i inne, są pomocne w aplikacjach uczenia maszynowego. Co więcej, koncepcja abstrakcji Pythona jest wykorzystywana w różnych rozwiązaniach AI, takich jak rozpoznawanie obrazów, zaawansowane obliczenia, przetwarzanie danych itp.

Najważniejsze umiejętności związane z nauką o danych do nauczenia

Najważniejsze umiejętności związane z nauką o danych do nauczenia
1 Kurs analizy danych Kursy statystyki wnioskowania
2 Programy do testowania hipotez Kursy regresji logistycznej
3 Kursy regresji liniowej Algebra liniowa do analizy

3. GUI na pulpicie

Python jest otwartym, łatwym do nauczenia się, niezależnym od platformy i stabilnym językiem programowania. Te aspekty sprawiają, że Python nadaje się do tworzenia GUI dla komputerów stacjonarnych. Narzędzia takie jak PyGUI, PyQt i WxPython są szeroko stosowane do wydajnego tworzenia wysokiej jakości GUI.

Przeczytaj nasze popularne artykuły dotyczące nauki o danych

Ścieżka kariery w nauce o danych: kompleksowy przewodnik po karierze Rozwój kariery w Data Science: Przyszłość pracy jest tutaj Dlaczego nauka o danych jest ważna? 8 sposobów, w jakie analiza danych wnosi wartość do biznesu
Znaczenie nauki o danych dla menedżerów Najlepsza ściągawka do analizy danych, którą powinien mieć każdy analityk danych 6 najważniejszych powodów, dla których warto zostać naukowcem danych
Dzień z życia Data Scientist: Co oni robią? Obalony mit: analiza danych nie wymaga kodowania Business Intelligence vs Data Science: jakie są różnice?

4. Gotowanie

Jeśli chcesz podgrzać posiłek w kuchence mikrofalowej, możesz nacisnąć określone przyciski, aby ustawić minutnik i inne funkcje. W rezultacie otrzymujesz ciepły i smaczny posiłek. Wewnętrzne działanie i szczegóły kuchenki mikrofalowej są przed tobą ukryte. Dostęp do funkcji zewnętrznych można uzyskać tylko w celu dostosowania czasu i procesu gotowania.

Na wynos

Abstrakcjaw Pythonie upraszcza proces radzenia sobie ze złożonością, rozkładając ją na mniejsze części.Możesz używać mniejszych części w programach lub projektach bez zrozumienia ich działania. Ta koncepcja pomaga programistom ograniczać złożone procesy, zwiększając wydajność ich pracy.

Osiągnij szczyt sukcesu w swojej karierze związanej z nauką o danych, biorąc udział w kursie Python Programming Bootcamp firmy upGrad . Program ułatwia immersyjne sesje prowadzone przez ekspertów branżowych, którzy wykorzystują najnowsze narzędzia i technologie, aby dokładnie pomóc początkującym w kodowaniu.

Dzięki przekazywaniu wymagających umiejętności, takich jak programowanie baz danych w SQL, budowanie logiki do programowania, ważne składnie Pythona i programowanie baz danych w Pythonie przy użyciu bibliotek Pandas i NumPy, kurs pomaga opanować wszystkie aspekty programowania w Pythonie. Oprócz najnowocześniejszego programu nauczania upGrad zapewnia kilka dodatkowych korzyści, takich jak interaktywne zajęcia na żywo, sesje wyjaśniające wątpliwości, mentoring wiodących ekspertów branżowych, całodobowe wsparcie dla studentów i wiele więcej!

P. Jaka jest różnica między abstrakcją a enkapsulacją w Pythonie?

Abstrakcja w Pythonie służy do ukrywania wewnętrznych szczegółów i wyświetlania tylko funkcjonalności. Proces nadaje nazwy rzeczom, aby upewnić się, że nazwa oddaje podstawową koncepcję tego, co robi funkcja lub cały program. Z drugiej strony enkapsulacja ogranicza dostęp do zmiennych i metod. Łączy dane i programy w jedną całość, aby uniknąć ich przypadkowej zmiany.

P. W jaki sposób abstrakcja w Pythonie pomaga w tworzeniu kodu wielokrotnego użytku?

W Pythonie proces abstrakcji ukrywa przed użytkownikiem szczegóły implementacji. Jego zdolność do ukrywania szczegółów, w jaki sposób funkcja programu sprawia, że ​​Twój kod jest bardziej użyteczny. Oznacza to, że możesz używać tego samego kodu w bardziej ogólny sposób w różnych sytuacjach, nie martwiąc się o to, jak działa pod tą samą maską. Co więcej, abstrakcja w Pythonie sprawia, że ​​kod jest łatwiejszy do odczytania i zrozumienia.

P. Jakie metody są obsługiwane w klasach abstrakcyjnych w Pythonie?

Klasy abstrakcyjne w Pythonie mogą obsługiwać zarówno abstrakcyjne, jak i konkretne metody w Pythonie. Metody abstrakcyjne powinny być zaimplementowane w klasach pochodnych. Konkretne metody są implementowane w klasie bazowej.