Pregled sažetak klase u Python-u

Sažetak klase su klase koje su deklarirane, ali ne sadrže implementacije. Može se naslijediti samo. Sažetak nastave djeluje kao predložak za potklase. Apstraktne klase ne mogu biti instancirane i zahtijevaju podklase da bi osigurale implementaciju apstraktnih metoda. Potrebne su mu podrazrede za implementaciju apstraktnih metoda koje su definirane u apstraktnim klasama. Sažetak nastave sadrži jednu ili više apstraktnih metoda. Apstraktne metode su metode koje su deklarirane bez ikakve implementacije. Ne možemo izravno stvoriti objekt apstraktne klase, ali možemo ga naslijediti u osnovnoj klasi i potom stvoriti objekt. U ovoj ćemo temi upoznati apstraktnu klasu na Pythonu.

U apstraktnoj klasi može se nalaziti i apstraktna klasa i betonska klasa. Korištenjem apstraktne klase možemo definirati generaliziranu strukturu metoda bez potpune implementacije svake metode. Apstraktne metode definirane u apstraktnoj klasi obično nemaju tijelo, ali moguće je imati apstraktne metode s implementacijama u apstraktnoj klasi i ako se neki podrazred izvodi iz takve apstraktne klase, treba osigurati implementaciju takvih metoda, Ako izvedena klasa ne provede bilo koju apstraktnu metodu, to će dovesti do pogreške. Objekt apstraktne klase ne može se izravno stvoriti, ali kada ovu apstraktnu klasu koristimo za pružanje određenih funkcionalnosti osnovnoj klasi ili podređenoj klasi, to možemo učiniti stvaranjem objekta osnovne klase.

Važnost sažetaka

1. Omogućuje zadanu funkcionalnost osnovnih klasa.

2. Definira zajednički API za skup potklasa, koristan kad treća strana daje dodatke u aplikaciji.

3. Korisno kod velikog koda teško je pamtiti mnoge časove.

Sintaksa

From abc import ABC
Class Educba(ABC):

Da bi bilo koju klasu smatrali apstraktnom klasom, klasa mora naslijediti ABC metaklasu iz python-ovog ugrađenog abc modula. abc modul uvozi klasu ABC.

Sažetak Metode u Pythonu

Apstraktne metode su metode koje su deklarirane bez ikakve implementacije.

Sintaksa

from abc import ABC, abstract method
Class Educba(ABC):
@abstractmethod
def mymethod(self):
#empty body
pass

Za definiranje apstraktnih metoda u apstraktnoj klasi, metoda mora biti ukrašena ključnom riječi koja se zove @ab абстрактmethod decorator. @Abriefmethod dekorator se mora uvesti iz python-ove ugrađene biblioteke pod nazivom abc.

Kako su sažetak nastave funkcionirali na Pythonu?

Python po defaultu nema apstraktne klase, ali ima modul ili biblioteku koja čini osnovu za definiranje apstraktnih osnovnih klasa (ABC) i naziv tog modula zove se ABC. Označava metodu osnovne klase kao apstraktnu osnovnu klasu, a zatim proizvodi konkretne klase kao implementacije apstraktne baze. Metoda se pretvara u apstraktnu metodu uz pomoć ključne riječi dekoratora pod nazivom @ab абстрактmethod.

ABC modul koristi se za izradu apstraktnih klasa, @ Abstramethod je dekorater koji se koristi za proglašavanje apstraktne metode. ABC modul uspostavlja ugovor između osnovne klase i klase betona.

Abc modul pruža osnovu za definiranje apstraktnih osnovnih klasa (ABC) u Python-u. Modul zbirke sadrži neke konkretne klase koje su izvedene iz ABC-a i mogu se dalje podijeliti. Pored svih ovih modula kolekcije sadrži i neki ABC pomoću kojeg se može provjeriti pruža li klasa ili instanca određeno sučelje ili ne.

Ovaj modul pruža sljedeću klasu:

klasa abc.ABCMeta

Metaklasa se koristi za definiranje apstraktnih osnovnih klasa (ABC)

Koristimo metaklasu za stvaranje apstraktne osnovne klase.

from abc import ABCMeta
class C:
__metaclass__ = ABCMeta
MyABC.register(tuple)
assert issubclass(tuple, C)
assert isinstance((), C)

Primjer

# importing the ABC module
from abc import ABC, abstractmethod
class Shape(ABC):
def common(self):
print("This is a concrete method")
@abstractmethod # decorator
def area(self):
pass
@abstractmethod
def perimeter(self):
pass
class Square(Shape):
def __init__(self, side):
self.__side=side
def area(self):
return self.__side*self.__side
def perimeter(self):
return 4*self.__side
class Rectangle(Shape):
def __init__(self, length, breath):
self.__length=length
self.__breath=breath
def area(self):
return self.__length*self.__breath
def perimeter(self):
return 2*(self.__length+self.__breath)
S1=Square(4)
print(S1.common())
print(S1.area())
print(S1.perimeter())
R1=Rectangle(2, 4)
print(R1.common())
print(R1.area())
print(R1.perimeter())

Dobiveni rezultat

Ovo je konkretna metoda

16

16

Ovo je konkretna metoda

8

12

U gornjem primjeru, klasa Sažetak je Oblik koji sadrži jednu konkretnu metodu koja se naziva uobičajena i dvije apstraktne metode zvane područje i obod. Postoje dvije podređene klase Square and Rectangle koje nasljeđuju apstraktnu klasu Oblik i provode apstraktnu metodu.

Primjena putem podrazreda:

import abc
class Shape:
def area(self):
pass
class Square(Shape):
def area(self):
print("Square is a child class")
print( issubclass(Square, Shape))
print( isinstance(Square(), Shape))

Sažetak svojstva

Sažetak predavanja sadrži apstraktna svojstva zajedno s apstraktnim metodama definiranim od strane @abriefproperty.

Sada možemo koristiti imovinu, property.getter (), property.setter () i Property.deleter () sa apstraktnim klasama.

Sintaksa

class class_name(ABC):
@property
@abstractmethod
Def method(self):

Ovo definira svojstvo samo za čitanje.

class Class_name:
__metaclass__ = ABCMeta
def getx(self): …
def setx(self, value): …
x = abstractproperty(getx, setx)

Python 2

class C(ABC):
@abstractproperty
def my_abstract_property(self):

Python 3.3

class C(ABC):
@property
@abstractmethod
def my_abstract_property(self):
import abc
from abc import ABC, abstractmethod
class Shape(ABC):
@abc.abstractproperty
def area(self):
return "Shape class"
class Square(parent):
@property
def area(self):
return "Square class"
try:
s1 =Shape()
print( s1.area)
except for Exception as err:
print (err)
s1 = Square()
print (s1.area)

Izlaz:

Aplikacija klase apstrakcije se ne može aplicirati s apstraktnim područjem metode

Kvadratna klasa

Zaključak

Na kraju, zaključujem da je apstraktna klasa način da se osigura određena razina kvalitete koda jer primjenjuju određene standarde i mogu smanjiti količinu dupliciranog koda koji pišemo. Uspostavlja vezu između osnovne klase i klase betona. Omogućuje jednostavnu implementaciju koda. Ona definira općenitu strukturu metoda bez njezine potpune primjene. Olakšava život programeru apstrahiranjem pozadinskog postupka i stavljajući ih u fokus samo na važne točke. To čini istraživanje i razumljivost mnogo bržim razumijevanjem uobičajene i jednostavne strukture klasa unutar koda.

Preporučeni članci

Ovo je vodič za Sažetak klase u Python-u. Ovdje smo raspravljali o tome kako apstraktne klase djeluju na Pythonu s važnošću i metodama s odgovarajućim primjerima. Možete također pogledati sljedeće članke da biste saznali više -

  1. Operacije datoteka Python-a
  2. Inkapsulacija u Pythonu
  3. Petlje u Pythonu
  4. Konstruktor u Pythonu
  5. Python setovi
  6. Uvod u apstraktni razred u PHP-u

Kategorija: