Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Timpul la care a fost modificat ultima oară fişierul ‘.py’ este înregistrat în fişierul ‘.pyc’ în momentul în care este<br />
creat, iar în momentul importului dacă aceste momente de timp nu corespund fişierului ‘.pyc’ este ignorat.<br />
De obicei nu trebuie să faceţi nimic deosebit pentru a crea fişierul ‘xxx.pyc’. Ori de câte ori ‘xxx.py’ este compilat<br />
cu succes este creat sau suprascris şi fişierul ‘xxx.pyc’. Dacă scrierea fişierului compilat nu reuşeşte veţi fi avertizat<br />
printr-un mesaj de eroare. Conţinutul fişierelor de tip ‘.pyc’ este independent de platformă, astfel încât <strong>Python</strong><br />
devine un limbaj foarte portabil.<br />
Câteva indicaţii pentru experţi:<br />
• Când interpretorul <strong>Python</strong> este apelat folosind opţiunea -O, se generează cod optimizat care va fi stocat în<br />
fişiere de tip ‘.pyo’. La momentul actual optimizatorul nu este de prea mare folos, nu face decât să elimine<br />
din cod instrucţiunile assert şi SET-LINENO. Atunci când se foloseşte această opţiune tot codul este<br />
optimizat, fişierele ‘.pyc’ sunt ignorate iar fişierele ‘.py’ sunt compilate şi optimizate.<br />
• Dacă interpretorul <strong>Python</strong> este lansat în execuţie folosind opţiunea -OO, compilatorul va genera cod optimizat,<br />
care în cazuri rare să ducă la fucţionări eronate ale programului. În mod curentă se elimină numai<br />
şirurile __doc__ din codul compilat, rezultând fişiere ‘.pyo’ mai compacte. Din moment ce unele programe<br />
pot folosi aceste şiruri, eliminarea lor ar putea genera erori. În concluzie, ar trebui să folosiţi această<br />
opţiune numai atunci când ştiţi foarte bine ce faceţi.<br />
• Un program nu funcţionează mai rapid, atunci când este citit dintr-un fişier de tip ‘.pyc’ sau .pyo, faţă de<br />
unul ‘.py’. Singurul lucru care diferă este viteza de încărcare a programelor în memorie.<br />
• Atunci când este rulat un script, prin lansarea interpretorului avînd ca parametru numele fişierului în care se<br />
află script-ul, codul script-ului nu este compilat şi nu se generează fişiere de tip ‘.pyc’ sau ‘.pyo’. În cazul<br />
în care aveţi un script de dimensiuni mari, şi doriţi să creşteţi viteza de încărcare, puteţi să mutaţi bucăţi din<br />
cod într-un modul pe care să îl importaţi apoi în script. Interpretorul <strong>Python</strong> poate fi lansat şi folosind direct<br />
un fişier cu extensia ‘.pyc’ sau ‘.pyo’.<br />
• Este posibil să lansaţi interpretorul <strong>Python</strong> doar cu un fişier de tip ‘xxx.pyc’ (sau ‘xxx.pyo’ dacă se foloseşte -<br />
O), fără ca fişierul ‘xxx.py’ asociat să existe. Puteţi folosi această facilitate atunci când distribuiţi o bibliotecă<br />
într-un format de cod greu de decriptat.<br />
• Modulul compileall poate fi folosit pentru a crea fişiere ‘.pyc’ (sau ‘.pyo’, utilizând -O) pentru toate<br />
modulele dintr-un director.<br />
6.2 Module standard<br />
<strong>Python</strong> dispune de o bilbliotecă de module standard, a căror descriere o puteţi găsi în ”<strong>Python</strong> Library Reference”.<br />
Unele module sunt integrate în interpretor, deşi nu fac parte din nucleul limbajului, din definiţia acestuia, dar<br />
sunt integrate pentru eficienţă sau pentru a facilita accesul la primitivele sistemului de operare. Setul de module<br />
integrate este o optiune de configurare, care de asemenea depinde de particularitatea platformei. De exemplu<br />
modulul amoeba este disponibil pe sisteme care pun la dispoziţie primitive Amoeba. Un anumit modul necesită<br />
o atenţie specială: sys care este integrat în orice interpretor <strong>Python</strong>. Variabilele sys.ps1 şi sys.ps2 definesc<br />
şirurile de caractere ce vor fi folosite de interpretor pentru prompt-ul principal şi cel secundar:<br />
>>> import sys<br />
>>> sys.ps1<br />
’>>> ’<br />
>>> sys.ps2<br />
’... ’<br />
>>> sys.ps1 = ’C> ’<br />
C> print ’Yuck!’<br />
Yuck!<br />
C><br />
6.2. Module standard 39