✦ Srednji nivo Pythona i OOP Srednji nivo Pythona

L2 · Koncept 04 · Osnove OOP-a

Neka svaka knjiga deluje.
Čuvajte stanje uz objekat.

Mini Library Manager sada daje objektu Book radnje za pozajmljivanje, vraćanje i prikaz sopstvenih podataka.

Cilj učenjaDefinišite i pozovite metode instance koje koriste self da čitaju ili promene atribute jednog Book objekta.
01 Uči02 Isprobaj03 Predvidi

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Stavite ponašanje knjige uz njene podatke.

Atributi opisuju stanje knjige. Metodi opisuju šta ta konkretna knjiga može da uradi. Svaki metod prvo prima self, pa može da čita ili ažurira atribute instance koja ga je pozvala.

class Book:
    def __init__(self, title, author, available=True):
        self.title = title
        self.author = author
        self.available = available

    def borrow(self):
        self.available = False

dune = Book("Dune", "Frank Herbert")
dune.borrow()
print(dune.available)

Poziv dune.borrow() navodi Python da prosledi dune kao self. Metod menja dune.available, a ne dostupnost svake knjige.

False

Druga instanca poziva istu definiciju metoda sa drugim self. Zato jedna knjiga može biti pozajmljena, dok druga ostaje dostupna.

↳

Čitajte self kao „ova knjiga“: Unutar borrow, self.available znači atribut available instance Book koja je pre tačke u dune.borrow().

Pozajmite jednu knjigu, druga ostaje dostupna
class Book:
    def __init__(self, title, author, available=True):
        self.title = title
        self.author = author
        self.available = available

    def borrow(self):
        self.available = False

    def return_book(self):
        self.available = True

    def display_info(self):
        print(f"{self.title} by {self.author}: {self.available}")

dune = Book("Dune", "Frank Herbert")
hobbit = Book("The Hobbit", "J. R. R. Tolkien")
dune.borrow()
dune.display_info()
hobbit.display_info()

dune.borrow() menja samo dune. hobbit ima sopstveni atribut available, koji ostaje True.

Tri korisna Book metoda
def borrow(self):
    self.available = False

def return_book(self):
    self.available = True

def display_info(self):
    print(self.title)

borrow i return_book menjaju stanje. display_info čita atribute i prikazuje podatke bez promene knjige.

Pratite poziv metoda

  1. 1. Definišite ponašanje u klasiUvucite def borrow(self) unutar Book kako bi ga svaka Book instanca mogla koristiti.
  2. 2. Pozovite ga tačkomdune.borrow() bira ponašanje borrow za instancu dune.
  3. 3. Python prosleđuje selfPython prosleđuje dune kao self, pa se self.available odnosi na dune.available.
  4. 4. Proverite drugu instancuhobbit.available je nezavisan jer je hobbit drugačiji objekat.

Česte greške

  • Izostavljanje selfMetodu instance je prvo potreban self da primi objekat koji ga je pozvao.
  • Pisanje available umesto self.availableKoristite self.available da promenite atribut sačuvan na instanci.
  • Pozivanje Book.borrow() bez objektaKoristite dune.borrow() kako bi Python znao koji Book treba pozajmiti.
  • Očekivanje da jedan poziv metoda menja svaku instancuMetod menja samo objekat prosleđen kao self, osim ako izričito ne radi sa drugim objektima.

Python radni prostor

Učitavanje Python okruženja…

Pozajmite jednu knjigu, vratite je i koristite display_info() da vidite da druga knjiga zadržava sopstveno stanje.

library_methods.pyPython
IzlazČeka se Python
Okruženje pregledača se učitava. I dalje možeš da menjaš primer koda.

Pyodide pokreće Python u Web Worker-u pregledača. Zaustavlja se i ponovo pokreće ako se kod predugo izvršava. Izvršavanje u pregledaču nije potpuna bezbednosna granica; ne unosi tajne i ne oslanjaj se na njega za izolaciju nepouzdanog koda.

Šta će ovaj program ispisati?

Pratite self koji prosleđuje svaki poziv metoda. dune je pozajmljen; hobbit se nikada ne menja.

class Book:
    def __init__(self, title, author, available=True):
        self.title = title
        self.author = author
        self.available = available

    def borrow(self):
        self.available = False

    def return_book(self):
        self.available = True

    def display_info(self):
        print(f"{self.title} by {self.author}: {self.available}")

dune = Book("Dune", "Frank Herbert")
hobbit = Book("The Hobbit", "J. R. R. Tolkien")
dune.borrow()
dune.display_info()
hobbit.display_info()
Izaberi izlaz

Vežbajte samostalno

Mini izazov — Vratite knjigu

Dodajte metod koji stanje jedne pozajmljene knjige vraća na dostupno.

Vaš ciljDefinišite return_book(self) da postavi self.available na True, zatim ga pozovite nad jednom Book instancom i ispišite rezultat.

return_book_challenge.py

Opcioni nagoveštaji
  • Definišite metod unutar klase pomoću def return_book(self).
  • Unutar njega dodelite self.available = True, zatim pozovite borrowed_book.return_book().
Pitajte Slobyja za nagoveštaj
Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.