class
Definiuje klasę: szablon obiektów łączący dane i funkcje, które na nich działają.
Przykład
#Python
class Student:
def __init__(self, name, level=1):
self.name = name
self.level = level
def level_up(self):
self.level += 1
return self.level
def __str__(self):
return f"{self.name} (poziom {self.level})"
ania = Student("Ania")
ania.level_up()
print(ania)Wynikzapisany wynik, możesz go sprawdzić
Ania (poziom 2)
Definicja i zastosowanie
#Słowo class tworzy nowy typ obiektów. Metoda specjalna __init__ ustawia dane nowego obiektu przy jego tworzeniu, a pierwszy parametr każdej metody, zwyczajowo nazwany self, wskazuje na obiekt, na którym metoda działa.
Klasy mogą dziedziczyć po innych klasach: class Mentor(Person) dostaje wszystkie metody Person i może je rozszerzać albo nadpisywać. Funkcja super() pozwala wywołać metodę klasy bazowej.
Metody z podwójnymi podkreślnikami, jak __str__ czy __repr__, określają zachowanie obiektu w wbudowanych operacjach, na przykład w print(). Do prostych klas przechowujących dane wygodny jest dekorator @dataclass.
Składnia
#Składnia
class Nazwa:
def __init__(self, parametr):
self.pole = parametr
def metoda(self):
...Więcej przykładów
#Python
from dataclasses import dataclass
@dataclass
class Course:
title: str
modules: int
class Mentor:
def __init__(self, name):
self.name = name
def introduce(self):
return f"Jestem {self.name}"
class PythonMentor(Mentor):
def introduce(self):
return super().introduce() + " i uczę Pythona"
print(Course("Python", 12))
print(PythonMentor("Darwin").introduce())Wynikzapisany wynik, możesz go sprawdzić
Course(title='Python', modules=12)
Jestem Darwin i uczę Pythona
Dobre praktyki
#- Nazwy klas pisz w stylu PascalCase (
StudentProfile), a metod i pól w snake_case. - Do klas, które głównie przechowują dane, użyj
@dataclass. Dostaniesz automatycznie__init__,__repr__i porównywanie.
Powiązane hasła
#- defDefiniuje funkcję: nazwany blok kodu z parametrami, który można wywoływać wielokrotnie.
- importWczytuje moduł lub wybrane nazwy z modułu do bieżącego pliku.
- withMenedżer kontekstu: automatyczne przygotowanie i sprzątanie zasobów.
- isinstance()Sprawdza, czy obiekt jest danego typu lub jego podtypu.
- __init__()Metoda wywoływana automatycznie przy tworzeniu obiektu. Zapisuje w nim dane początkowe, czyli atrybuty.
- DziedziczenieBudowanie klasy na bazie innej: klasa pochodna przejmuje metody klasy bazowej i może je rozszerzać lub nadpisywać.
Widzisz błąd albo brakuje przykładu? Napisz do nas.