Come restituire un nome di variabile in Python (ad esempio, b = 3, voglio stampare b come str)
Un nome di variabile in python si riferisce ad un valore (o a nessun valore se la variabile non è inizializzata). In qualsiasi momento, un valore può avere da zero a molti nomi. Passando da una funzione all'altra o tra spazi di nomi, lo "stesso" nome non si riferisce necessariamente allo stesso valore. So if I had b=3 and returned to you:
- return("the value of b is", b)
I’d return to you a tuple with a string that contains the variable name ‘b’ as a string and some other readable text (maybe we should simplify the spec of the return value to leave out the “other readable text” and the 2nd value in the tuple is a value that you could inspect to discover the value was an int with the numeric value of 3. Ma qual è l'uso del primo elemento della tupla restituita? La sub-routine che avevate chiamato e che aveva assegnato b=3 è ora ritornata, quindi il suo nome b non è nemmeno più definito. Il valore intero di 3 vive come il secondo valore senza nome nella tupla restituita. Se la vostra funzione attuale ha una variabile chiamata b, quella b è con tutta probabilità una b completamente diversa dalla b nella subroutine ora restituita.
Credo che quello che mi manca sia la cosa specifica che avevate in mente quando avete posto la domanda. Penso che finiremo per avere una grande discussione sui problemi di sicurezza dell'esporre l'accesso alle variabili del tuo programma Python a potenziali accessi inaspettati e incontrollati da parte dell'utente del tuo programma. State scrivendo una specie di interprete? O forse uno strumento di debug? Sarà importante per il vostro strumento mantenere i nomi e i valori delle variabili dell'utente memorizzati in modo distinto dal vostro spazio dei nomi per il vostro codice.
Quindi, da un lato, ammetto di non sapere cosa avevate in mente, ma sono abbastanza tranquillo nell'affermare che siete probabilmente sulla strada sbagliata e non dovreste fare quello che sembrate voler fare. Se proprio vuoi, sei libero di rispondere "No davvero, ecco perché" e possiamo discuterne ulteriormente, ma onestamente mi aspetto di dissuaderti da alcune scelte di design sfortunate di cui non mi hai ancora parlato.
Grazie per l'A2A. Mi sono divertito a rovistare nei risultati di ricerca di google per
python introspection
Articoli simili
- Come risolvere TypeError: unsupported operand type(s) per -: 'str' e 'str' in Python
- Cosa significa 'Errore: Può solo concatenare str (non "int") a str' significa in Python?
- How to fix “str” object is not callable when using set() function in Python 3.6.4
- What does 'str' object does not support item assignment' error mean in python?