Py verifica e reset variabili

come posso resettare tutte le variabili in Py?

ho trovato questa funzione %reset-f ma mi torna un errore

nada de nada? ? ?

Non uso Python.
Ho trovato questo.
Cancella variabili in IPython | Delft Stack

1 Mi Piace

grazie Leopoldo per la condivisione

“diciamo” che ho risolto il problema, nell’esempio vengono riporati vari esempi per cancellare le variabili,
il mio problema era che una variabile specifica in determinati casi non gli deve venir dato nessun valore.

ma eseguendo il codice varie volte, se precedentemente gli è stato dato un valore mantiene quel valore
quindi nelle volte successive anche se non dovrebbe avere nessun valore mi riporta il valore precedente.

gli esempi che hai postato indicavano il metodo che avevo posttato anch’io %reset per cancellare tutte le variabili ma che non funziona, come alternativa c’é anche (del ‘variable’) per cancellare la variabile indicata.

come detto a me il problema sorge con una sola variabile quindi posso benissimamente usare “del”
però anche il tuo link è del 2020/2021 quindi comunque attuale non capisco perché non funziona %reset

Però un conto è eliminare la variabile e un conto è, come dici, impostarla a un valore nullo.
a = NULL
In Python mi pare
a = none

1 Mi Piace

si infatti anch’io stavo andando in questa direzione, essendo che fin’ora in Py non mi era mai toccato gestire il contenuto delle variabili. in vb/vba si usava: empty / null / 0 e non inizializzata

un paio sono anche ambigue “empty e null” possono sembrare uguali ma invece se ricordo bene hanno delle differenze e quindi si gestiscono differentemente. ora non so se in Py sia la stessa cosa o meno. . .

non inizializzata sarebbe una variabile non dichiarata <if ‘myVar’ in globals(): print “exists”> (oppure locals)
0 una variabile che contiene un varole 0 oppure “” (lunghezza)

empty sarebbe vuota
null sarebbe nulla
in questi due casi che possono sembrare simili però ma comunque venicano gestiti con is null e is empty

in Python mi chiedevo se ci sono differenze oppure come dicevi None vale per entrambi i casi?

edit:
poi bisogna vedere le soluzioni in quale versione di Py funzionino

Salvio le variabili vanno sempre inizializzate. E’ una regola fondamentale della programmazione.
Quasi tutti i compilatori segnalano la mancata inizializzazione di una variabile come errore
(oppure warning!).

Sergio, certo che le variabili vanno sempre inizializzate.
non mi sembra di aver detto il contrario. . .

Inizializzata non significa dichiarata ma anche aver assegnato un valore. Non penso sia possibile che una variabile possa mantenere lo stesso valore alla successiva esecuzione di un codice a meno che non venga dichiarata come variabile globale.

ovviamente dando per scontato che era chiaro che stavo parlando di Py in Rh/Gh
facendo un esempio in pratica succede tipo questo:
ho n curve che seleziono con lo slider in Gh
tramite if in una variabile inserisco un punto3D avendo soddisfatto una determinata condizione
se poi seleziono una curva diversa che non soddisfa quella determinata condizione
comunque la variabile rimane inizializzata con un valore all’interno in quel caso un punto
ma che in questa curva non dovrebbe proprio esserci.

quindi o si va a gestire la variabile con un else dopo if e quindi si dovrebbe fare la stessa cosa per ogni if
oppure dichiarare le variabili vuote prima di ogni if e poi se soddisfa la condizione gli viene dato il valore

altrimenti quello che mi sarebbe piaciuto azzerare tutte le variabili inizializzate all’inizio del codice
essendo che non ci sono riuscito, a quel punto usando del var1, var2, var3 ecc posso cancellarle

Se posti lo script capiamo qualcosa di piu’.

Comunque da quello che dici sembra che lo script lavori su delle curve per ricavare eventualmente un punto.
All’inizio del codice che lavora sulle curve puoi inizializzare la tua variabile punto al valore che vuoi,
e quel valore ti ritrovi a fine calcolo se durante il calcolo al punto non viene assegnato un nuovo valore.

confermi quello che avevo detto :+1:

però pensando a quello che varie volte hai detto, cioè: che con Py non c’é bisogno di dichiarare le variabili
(a quanto ho capito per come la vedi, questa cosa rientra nelle tue preferenze)
volendo anch’io mantenere questa linea quindi non dichiarare una variabile vuota prima del codice
intendevo fare una cosa diversa, nel mio caso è una sola la variabile quindi con del var mi va bene
ma come da titolo mi sarebbe piaciuto resettare ad inizio codice tutte le variabili esistenti locali/globali
essendo che credo fare una cosa simili comunque può ritornare utile anche con altri codici in futuro

presumo che in Py non’è molto usato questo metodo/funzione %reset-f vedo anche pochi esempi
non ho capito bene se bisogna usare una versione precisa di Py oppure a seguito di altre stringhe

Qui dichiarare significa dichiarare il tipo della variabile prima di poterla usare.
Cosa che Python non richiede, dato che puoi assegnare valori alle variabili che vuoi, dove vuoi, senza prima dover scrivere altro.
Non c’entra con l’istruzione dello script in cui usi la variabile, cioe’ se e’ all’inizio dello script o dopo.

Non ricordo … :confused: … posso aver scritto che e’ una comodita’ quando devi farti uno script al volo.
Ma in generale, no, anzi preferisco le variabili tipizzate, per cosi’ dire, cioe’ che abbiamo un tipo ben definito e dichiarato.

Da dove viene questo %reset-f ?
Sembra piu’ l’istruzione per una shell che una funzione Python … :confused:

1 Mi Piace

aaaa ok quindi si dovrebbe trattare un qualcosa di specifico in una shell e vabbè scoperto l’arcano allora
:+1:
edit:

%reset is a magic command in IPython, which is used to delete all variables in namespace.

ma IPython sarebbe IronPython quindi anche quello usato in Rhino?