Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-03-2007, 18:25   #101
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Nel caso di foo, il risultato delle tre chiamate a foo e' la stampa di [1],[2] e [3].
Nel caso di foo2, y viene inizializzata una unica volta nel corso della prima chiamata, e il valore permane. Quindi foo2 ha il risultato di stampare rispettivamente [1],[1,2] e [1,2,3]. Non so se in questo caso abbia senso parlare di variabile temporanea
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 22:36   #102
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Quote:
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
???????

Quote:
Allora mi sfugge proprio il significato di quell'esempio che restituisce 0.0
sfugge anche a me

Quote:
Una variabile temporanea può essere ad esempio:

Codice:
private void something(String a) {
   String b = a;
   // do something
   String b = null;
   //do anything else
}
quindi x me b è una variabile locale temporanea perchè non esiste per tutta il ciclo di vita del metodo ma viene posta a null ad un certo punto (Ad esempio può essere una grossa cache che necessita di essere ripulita dal garbage collector perchè ad un certo punto diventa obsoleta).
La variabile a invece è una variabile locale, il che implica che è valida solo fintanto che ci si trova all'interno di quel metodo.
Estendendo un pò questo concetto si può dire che:
Codice:
int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
temp ad esempio si può considerare una variabile temporanea dato che, all'interno di un contesto maggiore, essa è utile solo per un periodo limitato di tempo, terminato il quale può essere tranquillamente eliminata avendo concluso la sua funzione, ovvero quando il suo valore è stato assergnato a b.
Ma cmq io potrei anche avere variabili globali temporanee, xkè il concetto di "località" di una variabile e di "temporaneità" sono proprio due cose diverse.
Nel caso di cui sopra quella imho era un variabile locale.
Spero di aver spiegato il mio concetto di "temporaneità"
scusa, ma mi sono confuso solo di più.poi mi dite come dovrei fare ad essere ottimista se ancora a 19anni non capisco queste cose?e poi vorrei diventare chissà chi...sono sempre più convinto di essere un illuso....
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 23:45   #103
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi

E' implicito nella definizione di variabile locale il fatto che sia temporanea all'interno della funzione.
Basta che ti decidi , prima hai detto una cosa un po' diversa:
Quote:
non sono variabili temporanee.
Sono variabili locali della funzione.
Al che io ho specificato che sono due cose distinte e possibili contemporaneamente.
Anche se probabilmente abbiamo due idee diverse sul significato di "variabile temporanea"
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 23:53   #104
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
Scusa, ho fatto le cose un po' di corsa
nella definizione di foo2:
Codice:
def foo2(x,y=[]):
  y.append(x)
  print y
Il parametro y ha un valore di default, che viene utilizzato se non ne specifico altri.
Ad esempio foo2(5) equivale a foo2(5,[]), in quanto nella definizione di funzione ho scritto y=[]. Nulla mi vieta ovviamente di specificare esplicitamente il secondo parametro, ad esempio foo2(1,['x']).
La cosa da fare attenzione e' che il valore di default viene calcolato solo all'inizio e non ad ogni chiamata. Quindi quando scrivo
Codice:
foo2(1)
foo2(2)
alla prima chiamata y ha valore [], mentre alla seconda ha valore [1], ovvero il valore che aveva y alla fine della chiamata precedente. In pratica passo informazioni da una chiamata di funzione alla successiva, ed era il mio esempio di variabile locale, ma non temporanea.

In ogni caso l'inteprete non deve scegliere assolutamente la signature della funzione da utilizzare: in python non esiste l'overloading delle funzioni. Se definisco due funzioni con lo stesso nome (anche se con signature differente) la prima "sparisce" e rimane valida solo la seconda.
Se scrivo
Codice:
def f(x):
  return x

def f(x,y):
  return x+y

f(1)
l'interprete mi ritorna un errore in quanto quando chiamo f(1) l'unica definizione valida di f e' la seconda.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 00:01   #105
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
oggi mi sono bloccato di nuovo.ecco dove:
PARAGRAFO 5.2
Codice:
def DistanzaTraDuePunti(x1, y1, x2, y2):
  dx = x2 - x1
  dy = y2 - y1
  DistQuadrata = dx**2 + dy**2
  print "DistQuadrata vale ", DistQuadrata
  return 0.0
perchè deve restituire 0.0 alla fine?
Infatti secondo me non dovrebbe.
O l'autore decide che deve tornare la distanza (oltre che stamparlo) e allora l'ultima riga dovrebbe essere return DistQuadrata (o meglio ancora la sua radice, ma questo e' un altro discorso), oppure stabilisce che invece che una funzione e' una procedura, e il risultato viene solo stampato; in quest'ultimo caso il return proprio non ci dovrebbe essere.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 09:58   #106
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Quote:
Codice:
def DistanzaTraDuePunti(x1, y1, x2, y2):
  dx = x2 - x1
  dy = y2 - y1
  DistQuadrata = dx**2 + dy**2
  print "DistQuadrata vale ", DistQuadrata
  return 0.0
perchè deve restituire 0.0 alla fine?

Infatti secondo me non dovrebbe.
O l'autore decide che deve tornare la distanza (oltre che stamparlo) e allora l'ultima riga dovrebbe essere return DistQuadrata (o meglio ancora la sua radice, ma questo e' un altro discorso), oppure stabilisce che invece che una funzione e' una procedura, e il risultato viene solo stampato; in quest'ultimo caso il return proprio non ci dovrebbe essere.
io credo che non dovrebbe restituirlo in nessun cas.forse c'è stato un errore nella traduzione della guida?come il \linebreak di qualche paragrafo fa che non c'entrava niente e nella guida originale non c'era
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 13:04   #107
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
voi che dite?
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 22:28   #108
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 13:52   #109
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 19:56   #110
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2007, 18:10   #111
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2007, 21:58   #112
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
e non ho capito nemmeno l'esempio di foo

Ultima modifica di Th3 Kn0wl3dg3 : 10-03-2007 alle 22:00.
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 13:01   #113
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 20:54   #114
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
e non ho capito nemmeno l'esempio di foo
Non preoccuparti troppo, e' un caso abbastanza particolare che avevo usato per mostrare come in un caso (il primo) ad ogni chiamata y viene inizializzato a lla lista vuota, mentre nel secondo le modifiche alla lista vengono conservate tra una chiamata e l'altra.

Codice:
def foo(x,y):
  y = []
  y.append(x)
  print y

def foo2(x,y=[]):
  y.append(x)
  print y
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele

Ultima modifica di marco.r : 13-03-2007 alle 21:51.
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 01:21   #115
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 20:02   #116
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
leggendo documenti su documenti credo che invece che python mi convenga iniziare da C o meglio ancora da java...voi che dite?
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 20:43   #117
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
Che problema c'è?
Quando uppi, quota il tuo problema, almeno è più semplice rispondere
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 20:43   #118
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
leggendo documenti su documenti credo che invece che python mi convenga iniziare da C o meglio ancora da java...voi che dite?
Dato che hai iniziato con python ti consiglio di continuare, è un ottimo linguaggio.
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 22:16   #119
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
Allora mi sono accorto che l'ultimo codice che ho postato non e' corretto, lo riscrivo qui per chiarezza, togliendo il secondo argomento a foo:
Codice:
def foo(x):
  y = []
  y.append(x)
  print y

def foo2(x,y=[]):
  y.append(x)
  print y
In foo, la lista vuota [] viene associata ad y ad ogni chiamata
per cui se io scrivo

Codice:
foo(1,1)
foo(2,2)
foo(3,3)
Ogni volta y riparte da [], per cui dopo che con y.append(x) ho aggiunto un elemento alla lista, ottengo sempre una lista di un elemento ( rispettivamente [1], [2] e [3] )
Con foo2 invece, y viene inizializzato ogni volta con la stessa lista, che pero' nel frattempo cresce.
Con
Codice:
foo2(1)
foo2(2)
foo2(3)
La prima volta che chiamo foo2, y viene inizializzato con la lista vuota [], a prescindere da qualsiasi valore io abbia passato come secondo argomento. A questa lista viene aggiunto l'elemento 1, e quindi la lista diventa [1]. Alla seconda chiamata, ad y viene associata la stessa lista di prima, [1], a cui viene aggiunto il valore 2, rendendola di due elementi, [1,2]. Similmente alla terza chiamata la lista e' [1,2] e diventa [1,2,3].
come dicevo sopra non crucciarti piu' di tanto per questo esempio, e' uno dei rari casi in cui python un po' strano.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 22:18   #120
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
io credo che non dovrebbe restituirlo in nessun cas.forse c'è stato un errore nella traduzione della guida?come il \linebreak di qualche paragrafo fa che non c'entrava niente e nella guida originale non c'era
Potrebbe essere. Non avendo sottomano l'originale, e' difficile dire se l'autore voleva o meno ritornare il valore. Di sicuro non voleva tornare 0.0 (o perlomeno spero ).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
11 accessori auto utilissimi in offerta ...
C'è un team italiano dietro gli a...
I prossimi iPad Pro avranno un component...
Scende il prezzo del TV LG OLED AI B5 55...
Speciale smartphone, i più sconta...
OnePlus 15 debutta in Cina: nuovo design...
Elon Musk costa caro a Tesla: uno studio...
Battlefield REDSEC esce oggi: ecco l'ora...
5 robot aspirapolvere in forte sconto su...
Smembrate OpenAI: la richiesta del senat...
iPhone 16 a 689€: e ora che si fa? Dispo...
I robot aspirapolvere Neato diventeranno...
Lux e Discovery, AMD e il Dipartimento d...
Qualcomm entra nei datacenter: annunciat...
Amazon prepara il più grande lice...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v