You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
fib = fibo.fib<br />
>>> fib(500)<br />
1 1 2 3 5 8 13 21 34 55 89 144 233 377<br />
6.1 Mai multe despre module<br />
Un modul poate conţine atât instrucţiuni executabile cât şi definiţii de funcţii. Instrucţiunile sunt menite să realizeze<br />
iniţializarea modulului şi se execută o singură dată, atunci când modulul este importat 1 .<br />
Fiecare modul are propria sa tabelă de simboluri care este folosită de funcţiile definite în modul ca o tabelă de<br />
simboluri globală.<br />
Cu toate astea, autorul unui modul se poate folosi de variabilele globale, fără a-şi face griji pentru eventuale<br />
coliziuni cu variabilele globale ale mediului în care modulul va fi importat. Pe de altă parte dacă aveţi neapărat<br />
nevoie puteţi modifica direct variabilele globale ale unui modul, folosind aceeaşi convenţie ca la apelarea funcţiilor<br />
unui modul: modul.variabilă.<br />
Modulele pot importa alte module. Este indicat ca instrucţiunile import pot fi plasate la începutul programului<br />
şi, dar nu este obligatoriu.<br />
Există o metodă de a încărca definiţiile unui anumit modul direct în tabela de simboluri globală a modulului care<br />
importă:<br />
>>> from fibo import fib, fib2<br />
>>> fib(500)<br />
1 1 2 3 5 8 13 21 34 55 89 144 233 377<br />
În exemplul de mai sus numele modulului nu a fost introdus în tabela de simboluri locală (fibo nu este definit).<br />
Pentru a încărca toate definiţiile modulului direct în tabela locală folosiţi sintaxa :<br />
>>> from fibo import *<br />
>>> fib(500)<br />
1 1 2 3 5 8 13 21 34 55 89 144 233 377<br />
Acum în tabela locală au fost încărcate toate numele de variabile şi funcţii din modul, mai putin cele care încep<br />
cu caracterul ”_”.<br />
6.1.1 Calea în care sunt căutate modulele<br />
Atunci când un modul numit ‘xxx’ este importat, interpretorul caută un fişier numit ‘xxx.py’ în directorul curent,<br />
şi în toate directoarele specificate în variabila de stare PYTHONPATH. Aceasta are aceeaşi sintaxa ca şi variabila<br />
de sistem PATH, care este o listă de directoare. Dacă variabila PYTHONPATH nu este definită, sau modulul<br />
nu este gasit in directoarele din lista, atunci va fi căutat în directorul implicit de instalare, de obicei, in UNIX,<br />
‘/usr/local/lib/python’.<br />
6.1.2 Fişiere <strong>Python</strong> “compilate”<br />
Un important aport de viteză la pornirea programelor care încarcă o mulţime de module standard este adus de<br />
următorul comportament al <strong>Python</strong>-ului: dacă în directorul unde este găsit fişierul ‘xxx.py’ se mai află şi ‘xxx.pyc’,<br />
se presupune că acest ultim fişier conţine o variantă compilată a modulului şi este încărcat în loc de ‘xxx.py’.<br />
1 De fapt declaraţiile de funcţii sunt tot ’instrucţiuni’ care sunt ’executate’ : execuţia inseamnă încărcarea numelui funcţiei în tabela de<br />
simboluri globale a modulului.<br />
38 Capitolul 6. Module