En Python (y ocasionalmente PHP) donde las variables no tienen tipos fijos, frecuentemente realizaré 'transformaciones de tipo' en una variable a medio camino a través de la lógica de mi código. No estoy hablando (necesariamente) de conversiones simples, sino de funciones que cambian el tipo de una variable y la dejan básicamente representando el mismo valor o datos.
Por ejemplo, podría escribir un código como este al hacer una solicitud web, utilizando la response
variable para almacenar un objeto addurlinfo, luego el contenido de la cadena de ese objeto y el diccionario devuelto al analizar la cadena como 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)
(Bien, es un ejemplo un poco artificial, pero creo que demuestra bien la idea). Mi sensación es que esto es mejor que usar tres nombres de variables separados porque a) transmite que la response
variable contiene básicamente la misma información, simplemente 'transformada' en un tipo diferente, yb) transmite que los objetos anteriores no van a se necesitará más abajo en la función, ya que al reasignar su variable, he dejado de estar disponible para su posterior código.
La compensación, supongo, es que el lector podría confundirse acerca de qué tipo es la variable en un momento dado.
¿Es este un mal estilo, y debería usar tres variables diferentes en el ejemplo anterior en lugar de reasignar a una? Además, ¿es esta práctica estándar en lenguajes de tipo dinámico, o no? No he visto suficiente código de otras personas para saber.
fuente
response_addurlinfo
,response_str
,response_dict
) son más feo todavía. ¿Qué haces?