28.01.2015 Views

Tutorial Python - Starship

Tutorial Python - Starship

Tutorial Python - Starship

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!