Klasa to zdefiniowany przez użytkownika plan lub prototyp, na podstawie którego tworzone są obiekty. Klasy umożliwiają łączenie danych i funkcjonalności. Utworzenie nowej klasy powoduje utworzenie nowego typu obiektu, umożliwiając tworzenie nowych instancji tego typu. Do każdej instancji klasy można przypisać atrybuty służące do utrzymywania jej stanu. Instancje klas mogą również posiadać metody (zdefiniowane przez ich klasę) służące do modyfikowania ich stanu.
Aby zrozumieć potrzebę tworzenia klasy i obiektu w Pyton Rozważmy przykład, powiedzmy, że chcesz śledzić liczbę psów, które mogą mieć różne cechy, takie jak rasa i wiek. Jeśli używana jest lista, pierwszym elementem może być rasa psa, a drugim elementem może być jego wiek. Załóżmy, że jest 100 różnych psów. Skąd więc wiesz, który element powinien być który? A co jeśli chciałbyś dodać tym psom inne właściwości? Brakuje w tym organizacji i to jest właśnie potrzeba zajęć.
Składnia: Definicja klasy
class ClassName: # Statement>
Składnia: Definicja obiektu
obj = ClassName() print(obj.atrr)>
Klasa tworzy plik zdefiniowany przez użytkownika Kilka punktów na temat klasy Pythona:
- Klasy tworzone są poprzez słowo kluczowe class.
- Atrybuty to zmienne należące do klasy.
- Atrybuty są zawsze publiczne i można uzyskać do nich dostęp za pomocą operatora kropki (.). Np.: Moja klasa. Mójatrybut
Tworzenie klasy w Pythonie
Tutaj słowo kluczowe class wskazuje, że tworzysz klasę, po której następuje nazwa klasy (w tym przypadku Pies).
program c dla tablicy dwuwymiarowejPython3
class Dog: sound = 'bark'>
Obiekt klasy Pythona
Obiekt jest instancją klasy. Klasa przypomina plan, a instancja jest kopią klasy rzeczywiste wartości . To już nie jest pomysł, to prawdziwy pies, jak pies rasy mops, który ma siedem lat. Możesz mieć wiele psów, aby stworzyć wiele różnych instancji, ale bez klasy jako przewodnika będziesz zagubiony, nie wiedząc, jakie informacje są wymagane.
Obiekt składa się z:
- Państwo: Jest reprezentowany przez atrybuty obiektu. Odzwierciedla także właściwości obiektu.
- Zachowanie: Jest reprezentowany przez metody obiektu. Odzwierciedla także reakcję obiektu na inne obiekty.
- Tożsamość: Nadaje obiektowi unikalną nazwę i umożliwia interakcję jednego obiektu z innymi obiektami.

Deklarowanie obiektów klas (nazywane także tworzeniem instancji klasy)
Kiedy tworzony jest obiekt klasy, mówi się, że tworzona jest jej instancja. Wszystkie instancje mają wspólne atrybuty i zachowanie klasy. Ale wartości tych atrybutów, czyli stan, są unikalne dla każdego obiektu. Pojedyncza klasa może mieć dowolną liczbę instancji.
Przykład:

Przykład klasy i obiektu Pythona
Tworzenie obiektu w Pythonie polega na utworzeniu instancji klasy w celu utworzenia nowej instancji tej klasy. Proces ten nazywany jest także tworzeniem obiektów.
Python3 # Python3 program to # demonstrate instantiating # a class class Dog: # A simple class # attribute attr1 = 'mammal' attr2 = 'dog' # A sample method def fun(self): print('I'm a', self.attr1) print('I'm a', self.attr2) # Driver code # Object instantiation Rodger = Dog() # Accessing class attributes # and method through objects print(Rodger.attr1) Rodger.fun()> Wyjście:
mammal I'm a mammal I'm a dog>
W powyższym przykładzie tworzony jest obiekt, którym jest w zasadzie pies o imieniu Rodger. Ta klasa ma tylko dwa atrybuty, które mówią nam, że Rodger jest psem i ssakiem.
Wyjaśnienie :
W tym przykładzie tworzymy klasę Dog i utworzyliśmy dwie zmienne klasowe atr1 i attr2 . Stworzyliśmy metodę o nazwie zabawa() która zwraca ciąg znaków Jestem a, {attr1} i Jestem a, {attr2}. Stworzyliśmy obiekt klasy Dog i drukujemy w atr1 obiektu. Na koniec dzwonimy do zabawa() funkcjonować .
Parametr własny
Kiedy wywołujemy metodę tego obiektu jako myobject.method(arg1, arg2), jest ona automatycznie konwertowana przez Pythona na MyClass.method(myobject, arg1, arg2) – to wszystko jest wyjątkowe samego siebie jest o.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def show(self): print('Hello my name is ' + self.name+' and I' + ' work in '+self.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()> The Samego siebie Parametr nie nazywa go Self, zamiast niego możesz użyć dowolnej innej nazwy. Tutaj zmieniamy self na słowo ktoś i wynik będzie taki sam.
Python3 class GFG: def __init__(somename, name, company): somename.name = name somename.company = company def show(somename): print('Hello my name is ' + somename.name + ' and I work in '+somename.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()> Wyjście: Dane wyjściowe dla obu kodów będą takie same.
Hello my name is John and I work in GeeksForGeeks.>
Wyjaśnienie:
W tym przykładzie tworzymy klasę GFG i utworzyliśmy plik imię i firma zmienne instancji w konstruktorze. Stworzyliśmy metodę o nazwie Powiedz cześć() która zwraca ciąg znaków Witam, nazywam się + {name} + i pracuję w +{company}+.. Stworzyliśmy obiekt klasy osoby i przekazujemy nazwę Jana i Spółki GeeksForGeeks do zmiennej instancji. Na koniec dzwonimy do pokazywać() z klasy.
Oświadczenie przepustki
Na wykonanie programu nie ma wpływu przechodzić bezczynność oświadczenia. Pozwala jedynie programowi ominąć tę sekcję kodu bez robienia czegokolwiek. Jest często stosowany, gdy ograniczenia składniowe Pythona wymagają prawidłowej instrukcji, ale nie trzeba wykonywać żadnego przydatnego kodu.
Python3 class MyClass: pass>
Metoda __init__().
The __gorący__ metoda jest podobna do konstruktorów w C++ I Jawa . Konstruktory służą do inicjowania stanu obiektu. Podobnie jak metody, konstruktor również zawiera zbiór instrukcji (tj. instrukcji), które są wykonywane w momencie tworzenia obiektu. Działa natychmiast po utworzeniu instancji obiektu klasy. Metoda ta jest przydatna do wykonania dowolnej inicjalizacji obiektu.
Python3 # Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) p = Person('Nikhil') p.say_hi()> Wyjście:
Hello, my name is Nikhil>
Wyjaśnienie:
W tym przykładzie tworzymy klasę Person i utworzyliśmy klasę nazwa zmienna instancji w konstruktorze. Stworzyliśmy metodę o nazwie say_hi(), która zwraca ciąg znaków Witam, nazywam się {imię}. Stworzyliśmy obiekt klasy osoby i przekazujemy nazwę Nikhil do zmiennej instancji. Na koniec wywołujemy metodę say_hi() klasy.
Metoda __str__().
Python ma szczególną metodę zwaną __str__() . który służy do określenia, w jaki sposób a klasa obiekt powinien być reprezentowany jako ciąg znaków. Często jest używany do nadania obiektowi czytelnej dla człowieka reprezentacji tekstowej, co jest pomocne przy rejestrowaniu, debugowaniu lub pokazywaniu użytkownikom informacji o obiekcie. Kiedy obiekt klasy jest używany do tworzenia ciągu znaków przy użyciu wbudowanych funkcji print() i str(), metoda __str__() funkcja jest używana automatycznie. Możesz zmienić sposób, w jaki obiekty a klasa są reprezentowane w postaci łańcuchów poprzez zdefiniowanie __str__() metoda.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def __str__(self): return f'My name is {self.name} and I work in {self.company}.' my_obj = GFG('John', 'GeeksForGeeks') print(my_obj)> Wyjście:
My name is John and I work in GeeksForGeeks.>
Wyjaśnienie:
W tym przykładzie tworzymy klasę o nazwie GFG. W klasie tworzymy dwie zmienne instancji imię i firma . W metodzie __str__() zwracamy nazwa zmienna instancji i firma zmienna instancji. Na koniec tworzymy obiekt klasy GFG i wywołujemy metodę __str__().
Zmienne klas i instancji
Zmienne instancji służą do danych, unikalnych dla każdej instancji, a zmienne klasy dotyczą atrybutów i metod współdzielonych przez wszystkie instancje klasy. Zmienne instancji to zmienne, których wartość jest przypisana wewnątrz konstruktora lub metody za pomocą self, natomiast zmienne klasowe to zmienne, których wartość jest przypisana w klasie.
Definiowanie zmiennych instancji przy użyciu konstruktora.
Python3 # Python3 program to show that the variables with a value # assigned in the class declaration, are class variables and # variables inside methods and constructors are instance # variables. # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed, color): # Instance Variable self.breed = breed self.color = color # Objects of Dog class Rodger = Dog('Pug', 'brown') Buzo = Dog('Bulldog', 'black') print('Rodger details:') print('Rodger is a', Rodger.animal) print('Breed: ', Rodger.breed) print('Color: ', Rodger.color) print('
Buzo details:') print('Buzo is a', Buzo.animal) print('Breed: ', Buzo.breed) print('Color: ', Buzo.color) # Class variables can be accessed using class # name also print('
Accessing class variable using class name') print(Dog.animal)> Wyjście :
Rodger details: Rodger is a dog Breed: Pug Color: brown Buzo details: Buzo is a dog Breed: Bulldog Color: black Accessing class variable using class name dog>
Wyjaśnienie:
Klasa o nazwie Pies jest zdefiniowana za pomocą a zmienna klasy zwierzę zawiązane na sznurek dla psa. Zmienne klasowe są wspólne dla wszystkich obiektów klasy i można uzyskać do nich dostęp za pomocą nazwy klasy. Klasa psa ma dwie zmienne instancji rasa i kolor. Później tworzymy dwa obiekty Pies class i drukujemy wartość obu obiektów za pomocą zmiennej klasowej o nazwie zwierzę.
Definiowanie zmiennych instancji metodą normalną:
Python3 # Python3 program to show that we can create # instance variables inside methods # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed): # Instance Variable self.breed = breed # Adds an instance variable def setColor(self, color): self.color = color # Retrieves instance variable def getColor(self): return self.color # Driver Code Rodger = Dog('pug') Rodger.setColor('brown') print(Rodger.getColor())> Wyjście:
brown>
Wyjaśnienie:
W tym przykładzie zdefiniowaliśmy klasę o nazwie Pies I stworzyliśmy zmienna klasy zwierzę. Stworzyliśmy zmienną instancji rasy w pliku konstruktor . Klasa Dog składa się z dwóch metod ustawKolor I pobierzColo r, służą do tworzenia i inicjowania zmiennej instancji oraz pobierania wartości zmiennej instancji. Stworzyliśmy obiekt z Pies class i ustawiliśmy wartość zmiennej instancji na brązową i drukujemy wartość w terminalu.