Klasy i obiekty Pythona. Część 9 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu

Opublikowany: 2022-01-25

Ten artykuł pomoże czytelnikowi zrozumieć podstawowe klasy Pythona wraz z kilkoma podstawowymi aplikacjami w świecie rzeczywistym. Będziemy używać Visual Studio Code jako naszego edytora kodu. Jeśli nie zainstalowałeś Visual Studio Code, instrukcje są podane w pierwszym blogu.

Klasy i obiekty Pythona – spis treści:

  1. Klasy Pythona
  2. Klasy Pythona – definicja
  3. Inicjalizacja klas Pythona
  4. Napiszmy naszą pierwszą klasę Pythona
  5. Atrybuty
  6. Zachowanie klasy
  7. Obiekty w Pythonie
  8. Dziedzictwo

Klasy Pythona

Jak pisaliśmy w pierwszym blogu, Python jest językiem programowania zorientowanym obiektowo. Istnieją trzy wyrażenia, które są bardzo ważne podczas omawiania programowania obiektowego w Pythonie. Pierwsza to klasa, druga to przedmiot, trzecia to dziedziczenie. Zacznijmy od tego, czym jest klasa.

Klasy Pythona – definicja

Klasa to plan lub rozszerzalny program, który pomaga w tworzeniu obiektów. Klasa składa się z zachowania i stanu. Zachowanie klasy jest demonstrowane za pomocą funkcji wewnątrz klasy, które nazywane są metodami. Stan klasy jest demonstrowany za pomocą zmiennych wewnątrz klasy, które nazywane są atrybutami.

Inicjalizacja klas Pythona

Klasę można zainicjować przy użyciu następującej składni.

Klasa w Pythonie jest definiowana za pomocą słowa kluczowego „class” następującego po nazwie klasy. Podstawowa składnia funkcji Pythona została zilustrowana poniżej.

Na przykład:

<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" />
# Create a function
# class Monkey
class classname:

Uwaga: nazwa klasy również ma te same normy, co deklaracja zmiennej.

Napiszmy naszą pierwszą klasę Pythona

# first class
 
class Animals:
	pass
 

W powyższym bloku kodu napisaliśmy klasę, którą będziemy dalej rozwijać na blogu. Jak widać, użyliśmy słowa kluczowego „class”.

Zobaczmy teraz, jak dodać komponenty do klasy zwierzęcia. Ale wcześniej nauczmy się o konstruktorze „__init__()”. Konstruktory służą do tworzenia instancji obiektów. Tutaj __init__() jest używany do tworzenia instancji obiektu. Konstruktor może być domyślny tylko z self jako argumentem lub sparametryzować wymaganymi argumentami.

Atrybuty

Istnieją dwa różne typy atrybutów, pierwszy to zmienne klasowe, a drugi to zmienne instancji. Zmienne klasy to zmienne, które są własnością klasy. Ponadto te zmienne są dostępne dla wszystkich wystąpień klasy. Dlatego ich wartość nie zmieni się, nawet jeśli zmieni się instancja.

# class variables
 
class Animals:
	type=”mammals”

Zmienne instancji to zmienne, które należą do samych instancji. W związku z tym zmienią swoją wartość wraz ze zmianą instancji.

# class variables
 
class Animals:
	def __init__(self,legs):
		self.legs=legs
		

Uwaga: Zmienne instancji nie są dostępne dla dostępu za pomocą nazwy klasy, ponieważ zmieniają się w zależności od obiektu uzyskującego do nich dostęp.

Stwórzmy program, który ma zadeklarowane zarówno zmienne klasy, jak i instancji.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
 
	

W powyższym programie użyliśmy zarówno zmiennych instancji, jak i klas. Tak więc te zmienne tworzą atrybuty klasy.

Zachowanie klasy

Jak wspomniano, zachowanie klasy jest definiowane przez metody wewnątrz klasy. Ale zanim przejdziemy do dyskusji na temat zachowania, musimy zacząć omawiać parametr „self”, którego użyliśmy w __init__().

Samego siebie:

Mówiąc bardzo prosto, za każdym razem, gdy dołączamy coś do siebie, mówi się, że zmienna lub funkcja należy do tej klasy. Ponadto za pomocą „self” można uzyskać dostęp do atrybutów lub metod klasy.

Metody:

Metody klasowe to funkcje wewnątrz klasy, których pierwszym argumentem będzie „self”. Metoda wewnątrz klasy jest definiowana za pomocą słowa kluczowego „def”.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 

W powyższej metodzie „kora”, ponieważ używamy zmiennej name, która jest zmienną instancji, uzyskujemy do niej dostęp za pomocą „self” i ta funkcja wypisze „hau hau!!!”, tylko wtedy, gdy nazwa podana do obiekt, jest pies.

Omówiliśmy większość składników klasy, ale być może zastanawiasz się, jak sprawdzić, czy klasa działa. Odpowiedź na to jest taka, że ​​jeśli nie stworzymy obiektu klasy, nie będziemy mogli zobaczyć, co robi klasa. Teraz zdefiniujmy i utwórzmy obiekt klasy.

Obiekty w Pythonie

Obiekt jest instancją klasy. Klasa jest tylko projektem, ale obiekt jest instancją klasy, która ma rzeczywiste wartości.

Poniżej przedstawiono kod do definiowania lub tworzenia obiektu.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 
dog=Animals(“dog”,4)
 

Składnia tworzenia obiektu to nazwaobiektu=nazwaklasy(argumenty). Stąd tutaj podajemy nazwę zwierzęcia, które ma być psem i liczbę nóg, która ma być 4. Teraz obiekt klasy jest tworzony, następnym krokiem jest użycie obiektu, aby uzyskać dostęp do jego atrybutów. Aby uzyskać dostęp do atrybutów klasy za pomocą obiektu, pamiętaj, że tylko zmienne instancji mogą być dostępne za pomocą obiektu. Zmienne instancji w naszej klasie to name i legs.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 
dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)
 

Jak widać, jesteśmy w stanie uzyskać dostęp do zmiennych instancji za pomocą notacji kropkowej.

Przyjrzyjmy się wynikom.

#Output
 
dog
4
 

Aby uzyskać dostęp do funkcji wewnątrz klasy lub metod, użyjemy notacji z kropką. Przykład zilustrowano poniżej.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 
dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)
print(dog.bark())
#Output
 
dog
4
woof woof!!!

W powyższym przykładzie widzimy, że uzyskujemy dostęp do metody klasy „bark” za pomocą utworzonego przez nas obiektu psa. Widzimy, że nie używamy parametru „self” w argumentach funkcji. Dzieje się tak, ponieważ nie wymagamy użycia „ja” poza klasą, ponieważ sam obiekt działa jako „ja”.

Dziedzictwo

Dziedziczenie to proces, w którym atrybuty i metody klasy mogą być przekazywane do klasy podrzędnej. Klasa, z której dziedziczy klasa potomna, jest klasą nadrzędną. Składnia dziedziczenia jest zilustrowana poniżej.

#Inheritance
 
class parent:
 
class child(parent):
 

Na powyższej ilustracji widzimy, że dla składni dziedziczenia umieszczamy nazwę klasy nadrzędnej jako argument klasy podrzędnej. Użyjmy klasy Zwierzęta i stwórzmy klasę potomną o nazwie pies. Jest to zilustrowane poniżej.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 
class Dog(Animals):
def __init__(self,name,legs,breed):
Animals.__init__(self,name,legs)
self.breed=breed

W powyższym przykładowym kodzie stworzyliśmy klasę psa, która jest rozszerzeniem klasy zwierząt, którą stworzyliśmy wcześniej. Używamy również parametrów z Animals using Animals.__init__(argumenty), które mają imię i nogi, które zostaną odziedziczone po klasie psa. Następnie tworzymy atrybut instancji dla klasy psa, którą jest rasa.

Teraz stwórzmy obiekt dla klasy psa i uzyskajmy dostęp do atrybutów i metod klasy zwierząt.

class Animals:
	type=”mammals”
	def __init__(self,name,legs):
		self.name=name
		self.legs=legs
	def bark(self):
		if self.name==”dog”:
			print(“woof woof!!!”)
		else:
			print(“not a dog”)
 
class Dog(Animals):
def __init__(self,name,legs,breed):
Animals.__init__(self,name,legs)
self.breed=breed
 
 
pug=Dog("dog",4,"pug")
pug.breed
pug.name
pug.legs
pug.bark()
#Output
 
pug
dog
4
woof woof!!!

Jak widać z danych wyjściowych, do atrybutów i metod klasy nadrzędnej uzyskuje dostęp obiekt klasy potomnej.

W tym blogu omówiliśmy kilka podstaw klas w Pythonie. W następnym wpisie na blogu zajmiemy się tematem obsługi plików.

python_classes

Możesz również polubić nasz kurs JavaScript od początkującego do zaawansowanego.

Python classes and objects. Part 9 Python Course from Beginner to Advanced in 11 blog posts robert whitney avatar 1background

Autor: Robert Whitney

Ekspert i instruktor JavaScript, który szkoli działy IT. Jego głównym celem jest podnoszenie produktywności zespołu poprzez uczenie innych efektywnej współpracy podczas kodowania.

Kurs Pythona od początkującego do zaawansowanego w 11 wpisach na blogu:

  1. Wprowadzenie do kursu Pythona. Część 1 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  2. Zmienne i typy danych w Pythonie. Część 2 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  3. Krotki, listy, zbiory i słowniki Pythona. Część 3 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  4. Zestawy i słowniki Pythona. Część 4 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  5. Instrukcje warunkowe w Pythonie. Część 5 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  6. Pętle w Pythonie. Część 6 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  7. Funkcje Pythona. Część 7 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  8. Zaawansowane funkcje w Pythonie. Część 8 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  9. Klasy i obiekty Pythona. Część 9 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu
  10. Pliki w Pythonie. Część 10 kursu Pythona od początkującego do zaawansowanego w 11 postach na blogu
  11. Aplikacje Pythona w praktyce. Część 11 Kurs Pythona od początkującego do zaawansowanego w 11 postach na blogu