Aceste două variabile sunt definite doar dacă interpretorul se află în mod interactiv. Variabila sys.path conţine o lisă de directoare unde <strong>Python</strong> caută module. Această variabilă este iniţializată din variabila de sistem PYTHON- PATH, sau cu o valoare implicită în cazul în care PYTHONPATH nu este definită. Puteţi modifica sys.path folosind operaţii specifice listelor: >>> import sys >>> sys.path.append(’/ufs/guido/lib/python’) 6.3 Funcţia dir() Funcţia integrată dir() poate fi folosită pentru a determina ce nume (de variabile, funcţii, etc.) defineşte un modul. Rezultatul acestei funcţii este o listă sortată de şiruri de caractere: >>> import fibo, sys >>> dir(fibo) [’__name__’, ’fib’, ’fib2’] >>> dir(sys) [’__displayhook__’, ’__doc__’, ’__excepthook__’, ’__name__’, ’__stderr__’, ’__stdin__’, ’__stdout__’, ’_getframe’, ’api_version’, ’argv’, ’builtin_module_names’, ’byteorder’, ’callstats’, ’copyright’, ’displayhook’, ’exc_clear’, ’exc_info’, ’exc_type’, ’excepthook’, ’exec_prefix’, ’executable’, ’exit’, ’getdefaultencoding’, ’getdlopenflags’, ’getrecursionlimit’, ’getrefcount’, ’hexversion’, ’maxint’, ’maxunicode’, ’meta_path’, ’modules’, ’path’, ’path_hooks’, ’path_importer_cache’, ’platform’, ’prefix’, ’ps1’, ’ps2’, ’setcheckinterval’, ’setdlopenflags’, ’setprofile’, ’setrecursionlimit’, ’settrace’, ’stderr’, ’stdin’, ’stdout’, ’version’, ’version_info’, ’warnoptions’] Dacă funcţia dir() este apelată fără argumente, va lista numele ce sunt definite (local) până în momentul curent: >>> a = [1, 2, 3, 4, 5] >>> import fibo, sys >>> fib = fibo.fib >>> dir() [’__name__’, ’a’, ’fib’, ’fibo’, ’sys’] Observaţi că listează diferite tipuri de nume: variabile, funcţii, module, etc. dir() nu listează şi numele de funcţii sau variabile integrate. Dacă doriţi o astfel de listă, puteţi apela dir(_- _builtin__), unde __buildin__ este modulul în care se află funcţiile şi variabilele integrate: 40 Capitolul 6. Module
import __builtin__ >>> dir(__builtin__) [’ArithmeticError’, ’AssertionError’, ’AttributeError’, ’DeprecationWarning’, ’EOFError’, ’Ellipsis’, ’EnvironmentError’, ’Exception’, ’False’, ’FloatingPointError’, ’FutureWarning’, ’IOError’, ’ImportError’, ’IndentationError’, ’IndexError’, ’KeyError’, ’KeyboardInterrupt’, ’LookupError’, ’MemoryError’, ’NameError’, ’None’, ’NotImplemented’, ’NotImplementedError’, ’OSError’, ’OverflowError’, ’OverflowWarning’, ’PendingDeprecationWarning’, ’ReferenceError’, ’RuntimeError’, ’RuntimeWarning’, ’StandardError’, ’StopIteration’, ’SyntaxError’, ’SyntaxWarning’, ’SystemError’, ’SystemExit’, ’TabError’, ’True’, ’TypeError’, ’UnboundLocalError’, ’UnicodeError’, ’UserWarning’, ’ValueError’, ’Warning’, ’ZeroDivisionError’, ’_’, ’__debug__’, ’__doc__’, ’__import__’, ’__name__’, ’abs’, ’apply’, ’basestring’, ’bool’, ’buffer’, ’callable’, ’chr’, ’classmethod’, ’cmp’, ’coerce’, ’compile’, ’complex’, ’copyright’, ’credits’, ’delattr’, ’dict’, ’dir’, ’divmod’, ’enumerate’, ’eval’, ’execfile’, ’exit’, ’file’, ’filter’, ’float’, ’getattr’, ’globals’, ’hasattr’, ’hash’, ’help’, ’hex’, ’id’, ’input’, ’int’, ’intern’, ’isinstance’, ’issubclass’, ’iter’, ’len’, ’license’, ’list’, ’locals’, ’long’, ’map’, ’max’, ’min’, ’object’, ’oct’, ’open’, ’ord’, ’pow’, ’property’, ’quit’, ’range’, ’raw_input’, ’reduce’, ’reload’, ’repr’, ’round’, ’setattr’, ’slice’, ’staticmethod’, ’str’, ’sum’, ’super’, ’tuple’, ’type’, ’unichr’, ’unicode’, ’vars’, ’xrange’, ’zip’] 6.4 Pachete Pachetele sunt o modalitate prin care <strong>Python</strong> structurează modul de acces la module (şi la definiţiile existente în module). Pentru exemplificare numele modulului A.B desemnează un submodul ‘B’ definit în cadrul pachetului ‘A’. Să presupunem că doriţi să proiectaţi o colecţie de module (un pachet) pentru manipularea fişierelor de sunet, şi a sunetelor. Există o multitudine de formate de sunet (de obicei recunoscute după extensia lor ‘.wav’, ‘.aiff’, ‘.au’) aşa că este necesară crearea şi întreţinerea unei colecţii de module în continuă creştere care să permită conversia între diverse formate de fişiere. Există multe alte operaţii pe care poate aţi dori să le executaţi (mixaje, adăugarea ecoului, efecte stereo, etc.), aşa că, de fapt, veţi scrie o serie nesfârşită de module care să permită aceste operaţii. Aveţi mai jos o posibilă structură a pachetului dumneavoastră (în sensul unei ierarhii de fişiere): 6.4. Pachete 41
- Page 1 and 2: Tutorial Python Versiunea 2.4.1 Gui
- Page 3: Abstract Python este un limbaj de p
- Page 6 and 7: 8.5 Excepţii definite de utilizato
- Page 8 and 9: nu numai că sunt permise, sunt chi
- Page 10 and 11: ce conţine o listă (vector) de ş
- Page 12 and 13: import os filename = os.environ.get
- Page 14 and 15: 2+2 4 >>> # Acesta este un comentar
- Page 16 and 17: 3.1.2 Şiruri de caractere În afar
- Page 18 and 19: subşir dintr-un şir mai mare, va
- Page 20 and 21: La început au existat numai 256 de
- Page 22 and 23: # substituirea unor componente : ..
- Page 25 and 26: CAPITOLUL PATRU Structuri de contro
- Page 27 and 28: for n in range(2, 10): ... for x in
- Page 29 and 30: 4.7 Mai multe despre definirea func
- Page 31 and 32: def cheeseshop(kind, *arguments, **
- Page 33 and 34: CAPITOLUL CINCI Structuri de date A
- Page 35 and 36: queue = ["Eric", "Ion", "Mihai"] >>
- Page 37 and 38: [x, x**2 for x in vec] # error - pa
- Page 39 and 40: asket = [’apple’, ’orange’,
- Page 41 and 42: for i in reversed(xrange(1,10,2)):
- Page 43 and 44: CAPITOLUL ŞASE Module Dacă ieşi
- Page 45: Timpul la care a fost modificat ult
- Page 49 and 50: De observat că atunci când se fol
- Page 51 and 52: CAPITOLUL ŞAPTE Intrări şi ieşi
- Page 53 and 54: table = {’Sjoerd’: 4127, ’Jac
- Page 55: dacă referinţă este 1 şi faţă
- Page 58 and 59: de asemenea afişat în corpul mesa
- Page 60 and 61: def this_fails(): ... x = 1/0 ... >
- Page 62 and 63: 8.6 Definirea acţiunilor de cură
- Page 64 and 65: 9.2 Domenii de vizibilitate (Scopes
- Page 66 and 67: atunci MyClass.i şi MyClass.f sunt
- Page 68 and 69: adăuga propriile atribute dată f
- Page 70 and 71: 9.6 Variabile private Există un su
- Page 72 and 73: for element in [1, 2, 3]: print ele
- Page 75 and 76: CAPITOLUL ZECE Pe scurt despre Stan
- Page 77 and 78: 10.6 Module matematice Modulul math
- Page 79 and 80: 10.11 Controlul calităţii program
- Page 81 and 82: CAPITOLUL UNSPREZECE Pe scurt despr
- Page 83 and 84: Pentru şirurile şablon utilizator
- Page 85 and 86: 11.6 Legături slabe la memorie Pen
- Page 87: from decimal import * >>> Decimal(
- Page 91 and 92: ANEXA A Editarea în linie de coman
- Page 93: # La interpretorul interactiv Pytho
- Page 96 and 97:
Se întâmplă aşa pentru că num
- Page 98 and 99:
q, r = divmod(2L**56, 10) >>> r 6L
- Page 100 and 101:
GPL, iţi permit să distribui o ve
- Page 102 and 103:
7. This License Agreement shall be
- Page 104 and 105:
Copyright (C) 1995, 1996, 1997, and
- Page 106 and 107:
Copyright (C) 1991-2, RSA Data Secu
- Page 108 and 109:
portions copyright 2001, Autonomous