12.07.2015 Views

Python

Python

Python

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

9.5. Otpornost 81form = """\Dragi %(ime)s,Molim Vas vratite mi moj %(vlasnistvo)s ili mi platite $%(iznos)0.2f Eura."""print form % { 'ime': 'gosp. Miki','vlasnistvo': 'bicikl','iznos': 150,}S po²tovanjem,<strong>Python</strong> MlažiZa ovakve obrasce koji imaju puno linija i £lanova koji se trebaju zamijeniti, puno je jasnije napisatijednu print naredbu s popisom £lanova u rje£niku, nego svaki tekst pisati pojedina£no.9.5 Otpornost£esto je potrebno spremiti objekt u datoteku i poslije ga iz datoteke pro£itati. Jedan na£in je da se na£ininiz funkcija za spremanje objekta u datoteku i isto tako funkcije za £itanje. Tu mogu nastati razli£itipristupi, ovisno o sklonostima i razmi²ljanju programera. Jedan ugraženi pristup ovom problemu jeserijalizacija objekta koja se postiºe upotrebom pickle i shelve modula. Modul pickle serijaliziraobjekt u tok okteta (eng. stream of bytes) koje se mogu zapisati u datoteku. Na primjer, sljede¢i kôdzapisuje objekt u datoteku:import pickleobject = someObject()f = open(filename,'w')pickle.dump(object, f) # Sprema objektPonovno obnavljanje objekta postiºe se sljede£im kôdom:import picklef = open(filename,'r')object = pickle.load(f) # Obnavlja objektModul shelve je sli£an, ali objekte sprema u bazu podataka sli£nu rje£niku:import shelveobject = someObject()dbase = shelve.open(filename)dbase['key'] = object...object = dbase['key']dbase.close()# Otvara bazu# Sprema objekt u bazu# Vra¢a objekt iz baze# Zatvara bazuU oba slu£aja, samo se serijalizirani objekti mogu spremiti u datoteku. Ve¢ina <strong>Python</strong> objekatase moºe serijalizirati, ali objekti posebne vrste, kao ²to su na primjer datoteke, ne mogu se spremati iobnavljati na ovaj na£in.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!