✦ Srednji nivo Pythona i OOP Kvalitet koda

L2 · Koncept 01 · Kvalitet koda i testiranje

Oznake tipova — Napiši kod
koji objašnjava sam sebe

Saznaj kako oznake tipova pomažu tebi, drugim programerima i editoru da jasnije razumeju Python kod.

Cilj učenjaKoristi oznake tipova za parametre, povratne vrednosti, promenljive, kolekcije, opcione vrednosti i jednostavne metode klasa.
01 Uči02 Radi lokalno03 Proveri razumevanje

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.

Oznake tipova čine očekivanja vidljivim.

Kada čitaš funkciju bez oznaka, nije uvek jasno koje vrednosti očekuje ili vraća.

def izracunaj_cenu(cena, popust):
    return cena - cena * popust / 100

def izracunaj_cenu(cena: float, popust: float) -> float:
    return cena - cena * popust / 100

Algoritam se nije promenio. float opisuje očekivane parametre, a -> float očekivanu povratnu vrednost.

Uobičajene osnovne oznake su int za cele brojeve, float za decimalne brojeve, str za tekst i bool za True ili False.

↳

Važno: Python ne sprovodi oznake tipova tokom uobičajenog izvršavanja. Anotacija je korisna informacija, a ne automatska runtime validacija.

Parametri, povratne vrednosti, promenljive i kolekcije
def napravi_pozdrav(ime: str) -> str:
    return f"Zdravo, {ime}!"

def prikazi_poruku(poruka: str) -> None:
    print(poruka)

ime: str = "Ana"
godine: int = 20
ocene: list[int] = [8, 9, 10]
cene: dict[str, float] = {"Hleb": 85.0}

Oznaka parametra opisuje ulaz. Oznaka iza -> opisuje rezultat. None znači da funkcija izvršava radnju, ali ne vraća korisnu vrednost. Oznake kolekcija opisuju vrednosti unutar liste ili rečnika.

Opcione i alternativne vrednosti
def pronadji_korisnika(korisnik_id: int) -> str | None:
    ...

vrednost: int | float = 12.5

str | None znači da rezultat može biti tekst ili da rezultata nema. int | float prihvata bilo koju od te dve vrste brojeva. Sintaksa unije | zahteva Python 3.10 ili noviji.

Oznake u klasi
class Proizvod:
    def __init__(self, naziv: str, cena: float) -> None:
        self.naziv = naziv
        self.cena = cena

    def prikazi(self) -> str:
        return f"{self.naziv}: {self.cena} RSD"

Ovaj primer povezuje oznake tipova sa OOP-om. U ovom jednostavnom primeru, self ne mora imati sopstvenu eksplicitnu oznaku.

Šta oznake tipova ne rade

  1. Ne odbijaju svaku pogrešnu vrednostFunkcija i dalje može primiti vrednost pogrešnog tipa. Stvarna greška može nastati kasnije, kada Python izvrši nekompatibilnu operaciju.
  2. Ne pretvaraju vrednostiOznaka str ne pretvara automatski broj u tekst, a oznaka int ne pretvara tekst u broj.
  3. Ne zamenjuju testiranje ni razmišljanjeIspravne oznake ne mogu sprečiti logičke greške. VS Code, Pylance ili alati za statičku analizu mogu upozoriti na moguća neusklađivanja, u zavisnosti od podešavanja, ali to nije runtime validacija.

Pre nego što zatražiš pomoć od Slobyja

  • Očekivani tip nije garancijaZapitaj se šta Python zaista radi sa prosleđenom vrednošću tokom izvršavanja.
  • Povratni tip nije jasanPogledaj svaki put povratka, zatim odluči da li funkcija vraća vrednost ili None.

Uredi svoj kod kao profesionalac

Radi ovo u VS Code-u

U sledećem koraku koristićeš mali lokalni projekat za evidenciju proizvoda. Za sada se pripremi da dodaš oznake bez menjanja ponašanja programa.

Preuzmi početni projekat
Početni projekat za evidenciju proizvoda
type_hints_proizvodi/
├── main.py
├── proizvodi.py
└── README.md

Početni program radi bez oznaka tipova. Dodaj ih samostalno, zatim potvrdi da njegov izlaz u terminalu ostaje isti.

Pripremi se za lokalnu vežbu

  1. Otvori projekat u VS Code-uNajpre ćeš pokrenuti početni program, zatim dodati oznake parametrima, povratnim vrednostima, promenljivama i kolekcijama.
  2. Zadrži isto ponašanjeNakon dodavanja oznaka ponovo pokreni program. Oznake tipova treba da razjasne kod, bez menjanja njegovog očekivanog rezultata.
↳

Zapamtite: python main.py Program može da radi čak i kada statički alat prijavi moguće neusklađivanje tipova.

Podsetnik za lokalnu vežbu

  • Koristi izabrani interpreterUpozorenja u VS Code-u zavise od Python interpretera i dostupnih alata za analizu.

Šta se događa kada se ovaj kod pokrene?

Razdvoji oznaku tipa od operacije koju Python zaista izvršava.

def pozdrav(ime: str) -> str:
    return "Zdravo, " + ime

print(pozdrav(123))
Izaberi izlaz

Izgrađuj samopouzdanje samostalnim radom

Dodaj korisne oznake tipova

Radi u svom lokalnom folderu; ne šalji Slobyju kompletno rešenje.

Vaš ciljNapravi funkciju koja prima listu cena i vraća njihov ukupan iznos. Dodaj odgovarajuće oznake tipova i objasni zašto si ih izabrao/la.
your_project/
└── main.py

Radi u svom lokalnom VS Code folderu

Nagoveštaji korak po korak
  • Najpre odluči šta predstavlja svaka stavka u listi cena.
  • Zatim odluči šta funkcija vraća nakon sabiranja vrednosti.

Pitaj Slobyja jedno vodeće pitanje o očekivanim i stvarnim tipovima; ne može da pokrene tvoje lokalne fajlove.

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.