[Python] Fwd: Cosa sbaglio

enrico franchi enrico.franchi a gmail.com
Lun 30 Maggio 2016 22:51:21 CEST


2016-05-30 21:16 GMT+01:00 Piacenza Federico <piacenza.federico a gmail.com>:

> Aiutatemi per favore, proprio non capisco cosa sbaglio.
>

E' una faq... leggiti la PEP8. Detto questo, secondo me devi chiarirti come
funziona l'assegnamento (e il passaggio di parametri) in Python...

0. cosa stampa esattamente (ovvero, quante volte stampa 'called g') questo
programma?
def g():
  print 'called g'
  return []

def f(b=g()):
  b.append(1)

g()
g()

1. secondo te cosa fa

a = []
b = a
a.append(1)
print b

2. secondo te cosa fa

def f(b):
  b.append(1)

a = []
f(a)
print a

3. cosa fa

a = []

def f(b=a):
  b.append(1)

f(a)
print a

4. perche' 3 dovrebbe essere diverso da 2?
5. perche' 3. dovrebbe essere diverso da

def f(b=[]):
  b.append(1)

f()

... eh... non so come fartelo printare (senza cambiare l'eserczio o fare
dei magheggi che non vuoi vedere).

Beh, dai, se siamo arrivati fin qui... sappiamo che l'oggetto che e' stato
passato ad f quando l'abbiamo invocata (senza argoment) sara' [1, ].
E guarda 0...







-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160530/8d4ee543/attachment.html>


Maggiori informazioni sulla lista Python