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.

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

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

Saved successfully!

Ooh no, something went wrong!