Klasy i metoda __init__
Proszę definiować klasy, tworzyć obiekty i inicjalizować atrybuty.
Klasy i metoda __init__ to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Definiowanie klasy
Do definiowania klasy służy słowo kluczowe class. Zgodnie z konwencją nazwy klas zapisuje się w formacie CapWords.
class Dog:
pass
fido = Dog()
print(type(fido)) # <class '__main__.Dog'>Metoda __init__
Metoda __init__ jest wywoływana automatycznie podczas tworzenia obiektu. Służy do konfigurowania atrybutów instancji.
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
fido = Dog("Fido", "Labrador")
print(fido.name) # FidoWyjaśnienie self
self odnosi się do bieżącej instancji. Musi być pierwszym parametrem każdej metody instancji. Python przekazuje go automatycznie.
class Counter:
def __init__(self):
self.count = 0
def increment(self):
self.count += 1
c = Counter()
c.increment()
print(c.count) # 1Wiele instancji
Każda instancja ma własną kopię atrybutów instancji ustawionych w __init__.
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x) # 1 5Domyślne wartości parametrów w __init__
Parametrom __init__ można nadać wartości domyślne, aby niektóre argumenty stały się opcjonalne.
class Circle:
def __init__(self, radius=1.0):
self.radius = radius
c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius) # 1.0 5Metody instancji
Metody zdefiniowane wewnątrz klasy operują na instancji za pośrednictwem self.
class Rectangle:
def __init__(self, w, h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
r = Rectangle(4, 5)
print(r.area()) # 20Dodawanie atrybutów po utworzeniu
Atrybuty można dodawać do instancji po jej utworzeniu, ale czytelniej jest zadeklarować je wszystkie w __init__.
class Person:
def __init__(self, name):
self.name = name
p = Person("Alice")
p.age = 30 # added after creation
print(p.name, p.age)Wartość zwracana przez __init__
__init__ musi zwracać None. Zwrócenie dowolnej innej wartości powoduje wystąpienie błędu TypeError.
class Broken:
def __init__(self):
return 42 # TypeError!
# Correct
class OK:
def __init__(self):
self.value = 42
# implicit return NoneSprawdzanie typu instancji
Do sprawdzania, czy obiekt jest instancją danej klasy, służy isinstance().
class Animal:
pass
class Dog(Animal):
pass
d = Dog()
print(isinstance(d, Dog)) # True
print(isinstance(d, Animal)) # TrueAtrybut __dict__
Każda instancja przechowuje swoje atrybuty w słowniku __dict__.
class Book:
def __init__(self, title, pages):
self.title = title
self.pages = pages
b = Book("Python 101", 300)
print(b.__dict__) # {'title': 'Python 101', 'pages': 300}Usuwanie atrybutów
Do usuwania atrybutu z instancji w czasie działania programu służy del.
class Config:
def __init__(self):
self.debug = True
self.version = "1.0"
cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug")) # FalseSzybkie sprawdzenie
Jaki jest cel użycia self w metodach klas języka Python?
Podsumowanie
Klasy są szablonami obiektów. __init__ inicjalizuje atrybuty instancji, self odnosi się do bieżącego obiektu, a każda instancja ma własny słownik atrybutów.
Często zadawane pytania
Czy lekcja „Klasy i metoda __init__” jest bezpłatna?
Tak — pełny tekst „Klasy i metoda __init__” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Klasy i metoda __init__”?
Proszę definiować klasy, tworzyć obiekty i inicjalizować atrybuty. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Klasy i metoda __init__”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Klasy i metoda __init__
- Atrybuty instancji a atrybuty klasy
- Metody instancji i self
- Metody magiczne: __str__ i __repr__