In Python (e occasionalmente in PHP) dove le variabili non hanno tipi fissi, eseguirò frequentemente 'tipo trasformazioni' su una variabile in modo parziale attraverso la logica del mio codice. Non parlo (necessariamente) di cast semplici, ma di funzioni che cambiano il tipo di una variabile, mentre lasciano sostanzialmente il medesimo valore o dati.
Ad esempio, potrei scrivere un codice come questo quando faccio una richiesta web, usando la variabile response
per memorizzare un oggetto addurlinfo, poi il contenuto stringa di quell'oggetto e il dizionario restituito analizzando la stringa come JSON:
response = urlopen(some_url)
assert response.info().type == 'application/json'
response = response.read()
logger.debug('Received following JSON response: ' + response)
response = json.loads(response)
do_something(response)
(Ok, è un esempio un po 'forzato, ma penso che dimostri l'idea). La mia sensazione è che questo è meglio dell'uso di tre nomi di variabili separati perché a) trasmette che la variabile response
contiene fondamentalmente la stessa informazione, solo 'trasformata' in un tipo diverso, e b) trasmette che gli oggetti precedenti non sono ' Ci vorrà ancora più in basso nella funzione, poiché riassegnando la loro variabile li ho resi non disponibili al codice successivo.
Il compromesso, immagino, è che il lettore potrebbe confondersi sul tipo di variabile in un dato momento.
È questo cattivo stile e dovrei usare tre diverse variabili nell'esempio sopra invece di riassegnare a uno? Inoltre, questa pratica standard è in lingue digitate dinamicamente o no? Non ho visto abbastanza codice di altre persone da sapere.