Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
def cheeseshop(kind, *arguments, **keywords):<br />
print " - Aveti", kind, ""<br />
print " - Nu, nu avem", kind<br />
for arg in arguments: print arg<br />
print ’-’*40<br />
for kw in keywords.keys(): print kw, ’:’, keywords[kw]<br />
Un apel al acestei funcţii ar arăta astfel:<br />
cheeseshop(’Limburger’,"Se vinde foarte repede, d-le",<br />
"Se vinde foarte, FOARTE repede, d-le",<br />
client=’John Cleese’,<br />
manager=’Michael Palin’,<br />
sketch=’Cheese Shop Sketch’)<br />
Iar rezultatul va fi următorul:<br />
- Aveti Limburger<br />
- Nu, nu avem Limburger<br />
Se vinde foarte repede, d-le.<br />
Se vinde foarte, FOARTE repede, d-le.<br />
----------------------------------------<br />
client : John Cleese<br />
manager : Michael Palin<br />
sketch : Cheese Shop Sketch<br />
4.7.3 Liste de argumente arbitrare<br />
O funcţie poate fi apelată cu un număr arbitrar de argumente. Înainte de argumentele arbitrare (opţionale) pot<br />
exista mai multe argumente normale:<br />
def fprintf(file, format, *args):<br />
file.write(format % args)<br />
4.7.4 Dspachetarea listelor de argumente<br />
Situţia inversă este aceea în care argumentele se găsesc deja într-o listă sau pereche, dar este necesară despachetarea<br />
lor pentru apelarea unei funcţii care necesită argumente separate poziţional. De exemplu, functia interna<br />
range() necesita parametrii separaţi pentru start şi stop. Dacă argumentele nu sunt transmise separat,<br />
scrieţi apelarea funcţiei folosind operatorul * pentru despachetarea argumentelor dintr-o listă sau dintr-o pereche :<br />
>>> range(3, 6) # apelare normala<br />
[3, 4, 5]<br />
>>> args = [3, 6]<br />
>>> range(*args) # apelare cu despachetarea argumentelor dintr-o lista<br />
[3, 4, 5]<br />
4.7.5 Forme Lambda<br />
La cererea utilizatorilor de <strong>Python</strong>, au fost adăugate câteva facilităţi specifice limbajelor funcţionale şi Lisp-ului.<br />
Folosind cuvântul cheie lambda puteţi crea mici funcţii. Iată o funcţie care întoarce ca rezultat suma argumentelor:<br />
‘lambda a, b : a+b’. Formele lambda pot fi folosite acolo unde sunt necesare funcţii obiect.<br />
4.7. Mai multe despre definirea funcţiilor 25