✦ Srednji nivo Pythona i OOP Srednji nivo Pythona

L2 · Koncept 03 · Osnove OOP-a

Postavite svaku knjigu.
Neka njeno stanje bude jasno.

Mini Library Manager sada svakoj novoj Book dodeljuje potpune početne podatke, uključujući i to da li je dostupna.

Cilj učenjaInicijalizujte atribute Book obaveznim i podrazumevanim argumentima, a zatim ažurirajte atribut jednog 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.

Dajte novoj knjizi početno stanje.

Već ste koristili __init__ da primite naslov i autora. Konstruktor može da postavi i podrazumevanu vrednost. Ovde je svaka nova knjiga dostupna, osim ako pozivalac ne kaže drugačije.

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

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

title i author su obavezni argumenti, pa ih svaki poziv Book mora proslediti. available=True je podrazumevani argument, pa se koristi kada treća vrednost nije prosleđena.

True

Posle kreiranja, atribut može da se promeni. Dodela dune.available = False ažurira samo objekat dune.

↳

Kontrolna lista konstruktora: Prvo koristite self, primite potrebne vrednosti i sačuvajte ih pomoću self.attribute. Podrazumevane vrednosti pripadaju listi parametara, posle obaveznih argumenata.

Dve knjige, različita dostupnost
class Book:
    def __init__(self, title, author, available=True):
        self.title = title
        self.author = author
        self.available = available

dune = Book("Dune", "Frank Herbert")
foundation = Book("Foundation", "Isaac Asimov", False)
dune.available = False

print(dune.available)
print(foundation.available)

dune počinje sa podrazumevanim True, a zatim se menja u False. foundation prima False direktno pri kreiranju.

Obavezni naspram podrazumevanih argumenata
Book("Dune", "Frank Herbert")
# title and author are required

Book("Foundation", "Isaac Asimov", False)
# available overrides its default

Obavezni argumenti opisuju podatke koje svaka knjiga mora da ima. Podrazumevana vrednost čini opciono stanje praktičnim, uz predvidivu početnu vrednost.

Napravite pouzdan konstruktor

  1. 1. Primite obavezne podatkeStavite title i author u __init__ kako Book ne bi mogao da se napravi bez njih.
  2. 2. Dodajte opciono stanjeStavite available=True iza obaveznih parametara da biste novim knjigama dali podrazumevanu dostupnost.
  3. 3. Sačuvajte na selfDodelite self.available = available kako bi vrednost pripadala ovoj instanci.
  4. 4. Ažurirajte jednu knjiguKoristite book.available = False kada je ta konkretna knjiga pozajmljena.

Česte greške

  • Stavljanje podrazumevane vrednosti pre obaveznih podatakaObavezni parametri moraju biti pre podrazumevanih parametara u definiciji funkcije.
  • Zaboravljanje čuvanja parametraNije dovoljno primiti available; dodelite ga self.available da biste ga sačuvali na objektu.
  • Menjanje klase umesto objektaNapišite dune.available = False da promenite stanje jedne knjige.
  • Očekivanje da podrazumevana vrednost prepiše prosleđenu vrednostPodrazumevana vrednost se koristi samo kada pozivalac izostavi taj argument.

Python radni prostor

Učitavanje Python okruženja…

Napravite još jedan Book sa podrazumevanom dostupnošću, a zatim označite jednu knjigu kao pozajmljenu.

library_status.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?

Prvo pratite podrazumevanu vrednost, a zatim kasniju dodelu samo objektu dune.

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

dune = Book("Dune", "Frank Herbert")
foundation = Book("Foundation", "Isaac Asimov", False)
dune.available = False

print(dune.available)
print(foundation.available)
Izaberi izlaz

Vežbajte samostalno

Mini izazov — Dodajte status knjige

Proširite model biblioteke podrazumevanim atributom dostupnosti i ažurirajte jednu knjigu nakon kreiranja.

Vaš ciljNapravite Book sa title, author i podrazumevanim available=True. Učinite jednu knjigu nedostupnom i ispišite njen naslov i dostupnost.

book_status_challenge.py

Opcioni nagoveštaji
  • Sačuvajte podrazumevani argument pomoću self.available = available.
  • Nakon što Book(...) vrati objekat, koristite new_book.available = False da ažurirate samo taj objekat.
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.