Marinatas, kuris pagal nutylėjimą yra „Python“ bibliotekos dalis, yra svarbus modulis, kai jums reikia atkaklumo tarp vartotojo seansų. Kaip modulis, agurkas suteikia galimybę išsaugoti Python objektus tarp procesų.
Nesvarbu, ar jūs programuojate duomenų bazę, žaidimas, forumas ar kita programa, kuri turi išsaugoti informaciją tarp sesijų, marinatas yra naudingas norint išsaugoti identifikatorius ir parametrus. Minkymo modulis gali saugoti tokius duomenis kaip duomenų tipai, tokie kaip loginiai elementai, eilutės ir baitų masyvai, sąrašai, žodynai, funkcijos ir dar daugiau.
Pastaba: Marinavimo sąvoka taip pat žinoma kaip serijinis sukūrimas, suplakimas ir išlyginimas. Tačiau taškas visada yra tas pats - išsaugoti objektą faile vėlesniam nuskaitymui. Marinavimas tai įvykdo, parašydamas objektą kaip vieną ilgą baitų srautą.
Marinuoto kodo pavyzdys „Python“
Norėdami įrašyti objektą į failą, naudokite kodą, pateiktą šioje sintaksėje:
importuoti marinatą
objektas = objektas ()
filehandler = atidaryti (failo vardas, 'w')
„pickle.dump“ (objektas, bylų tvarkyklė)
Štai kaip atrodo realaus pasaulio pavyzdys:
importuoti marinatą
importo matematika
object_pi = math.pi
file_pi = atidaryti ('failo vardas_pi.obj', 'w')
„pickle.dump“ (objekto_pi, failo_pi)
Šis fragmentas rašo objektas_pi į bylą tvarkytojo failas_pi, kuris savo ruožtu yra susietas su byla failo vardas_pi.obj vykdymo kataloge.
Norėdami atkurti objekto vertę atmintyje, įkelkite objektą iš failo. Darant prielaidą, kad marinatai dar nebuvo importuoti naudoti, pradėkite juos importuodami:
importuoti marinatą
filehandler = atidaryti (failo vardas, „r“)
objektas = marinuoti failai (failų tvarkyklė)
Šis kodas atkuria pi reikšmę:
importuoti marinatą
file_pi2 = atidaryti ('failo vardas_pi.obj', 'r')
object_pi2 = marinatas.siųsti (failas_2)
Objektas vėl paruoštas naudoti, šį kartą kaip objektas_pi2. Žinoma, jei norite, galite pakartotinai naudoti originalius pavadinimus. Šiame pavyzdyje aiškumui naudojami skirtingi pavadinimai.
Ką reikia atsiminti apie marinatą
Naudodami rauginimo modulį, atsiminkite šiuos dalykus:
- Minkymo protokolas būdingas „Python“ - nėra garantuojama, kad jis suderinamas su kitomis kalbomis. Jūs greičiausiai negalite perduoti informacijos, kad ji būtų naudinga „Perl“, PHP, „Java“ ar kitomis kalbomis.
- Taip pat nėra garantijos, kad bus suderinamos skirtingos „Python“ versijos. IT nesuderinamumas egzistuoja, nes modulis negali nuosekliai suderinti visų Python duomenų struktūrų.
- Pagal numatytuosius nustatymus naudojama naujausia marinavimo protokolo versija. Tai išlieka, nebent rankiniu būdu pakeisite.
Patarimas: Taip pat sužinok kaip panaudoti lentyną, norint išsaugoti Python objektus kitam objekto tęstinumo palaikymo metodui.