Dajte svakoj knjizi isti početni oblik.
Prethodna lekcija predstavila je klasu kao zajednički model. Sada Book može da pravi objekte knjiga spremne za upotrebu. __init__ se izvršava kada Python pravi objekat, a self označava konkretan objekat koji se priprema.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
book_one = Book("Dune", "Frank Herbert")
print(book_one.title)Book(...) poziva __init__. Vrednosti postaju atributi tog jednog objekta: self.title i self.author. Tačka čita atribut iz određene instance.
DuneSvaki poziv Book(...) pravi novi objekat. Definicija klase je zajednička, ali svaka instanca čuva odvojene vrednosti atributa.
Čitajte self kao „ova knjiga“: Unutar __init__ metoda, self se odnosi na objekat koji Python upravo pravi. Pišete self.title da bi svaki Book dobio sopstveni naslov.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
book_one = Book("Dune", "Frank Herbert")
book_two = Book("The Hobbit", "J. R. R. Tolkien")
book_one.title = "Dune Messiah"
print(book_one.title)
print(book_two.title)Promena book_one.title menja samo book_one. book_two i dalje čuva naslov The Hobbit.
Book # the class blueprint
book_one = Book(...) # one object, or instanceKoristite ime klase da napravite objekte. Koristite promenljivu objekta i tačku da pristupite njegovim atributima.
Napravite jednu knjigu u biblioteci
- 1. Definišite klasuclass Book imenuje zajednički nacrt.
- 2. Inicijalizujte podatke__init__ prima naslov i autora dok se objekat pravi.
- 3. Sačuvajte atributeself.title i self.author pripadaju tom jednom objektu.
- 4. Napravite još jednu instancuJoš jedan poziv Book pravi odvojene podatke za drugu knjigu u biblioteci.
Česte greške
- Nedostaje selfMetodima instance prvo je potreban self kako bi Python znao koji objekat prima podatke.
- Korišćenje title umesto self.titleParametar je privremen; self.title čuva vrednost kao atribut objekta.
- Očekivanje zajedničkih podataka instanciPromena jedne instance Book ne ažurira drugu instancu.
- Zaboravljanje zagradaBook(...) pravi objekat; Book sam po sebi imenuje klasu.
