✦ Srednji nivo Pythona i OOP Kolekcije

Koncept 04 · Specijalne metode

Neka Python razume vaše objekte.

Kako Python zna šta da prikaže kada ispišemo objekat ili zatražimo njegovu dužinu?

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.

Specijalne metode omogućavaju objektima da prirodno rade sa print() i len().

Kako Python zna šta da prikaže kada ispišemo objekat ili zatražimo njegovu dužinu?

class Book:
    def __init__(self, title, author): self.title, self.author = title, author
    def __str__(self): return f"{self.title} by {self.author}"
book = Book("Dune", "Frank Herbert")
print(book)

class BookCollection:
    def __init__(self): self.books = []
    def add_book(self, book): self.books.append(book)
    def __len__(self): return len(self.books)
collection = BookCollection()
for title in ("Dune", "The Hobbit", "Python Basics"): collection.add_book(title)
print(len(collection))

Bez __str__(), print(book) obično prikazuje nečitljiv podrazumevani opis objekta. __str__() vraća čitljiv tekst za print(book) i str(book); mora koristiti return, a ne print(). BookCollection čuva knjige u listi, a len(collection) koristi njenu __len__() metodu da vrati nenegativan ceo broj. Ovo nas priprema za Library sa pravim Book objektima u narednoj lekciji Composition. __str__() vraća string, dok __len__() vraća nenegativan ceo broj.

Dune by Frank Herbert 3

Pokušaj da promeniš jednu vrednost, zatim objasni koji deo kolekcije se promenio i zašto.

↳

Zapamti: Pročitaj operaciju nad kolekcijom pre nego što predvidiš rezultat.

Isprobaj
class Book:
    def __init__(self, title, author): self.title, self.author = title, author
    def __str__(self): return f"{self.title} by {self.author}"
book = Book("Dune", "Frank Herbert")
print(book)

class BookCollection:
    def __init__(self): self.books = []
    def add_book(self, book): self.books.append(book)
    def __len__(self): return len(self.books)
collection = BookCollection()
for title in ("Dune", "The Hobbit", "Python Basics"): collection.add_book(title)
print(len(collection))

Pokreni primer, zatim promeni jednu vrednost i posmatraj rezultat.

Python radni prostor

Učitavanje Python okruženja…

Izmeni primer i pokreni ga u pregledaču.

special_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?

Pročitaj svaku operaciju pre nego što izabereš odgovor.

class Book:
    def __init__(self,title): self.title=title
    def __str__(self): return f"Book: {self.title}"
book=Book("Dune")
print(book)
print(str(book))
Izaberi izlaz

Vežbajte samostalno

Mini izazov — Opišite EBook

Redefinišite __str__() uz super() i vratite čitljiv rezultat.

Vaš ciljRedefinišite __str__() u klasi EBook tako da vratite naslov, autora i veličinu fajla. Koristite super().__str__() za osnovne informacije i vratite konačan tekst umesto da ga ispisujete.

ebook_str.py

Opcioni nagoveštaji
  • Koristite super().__str__() za osnovni tekst.
  • Vratite string; nemojte ga ispisivati unutar __str__().
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.