No Python (e ocasionalmente no PHP), onde as variáveis não têm tipos fixos, frequentemente executarei 'transformações de tipo' em uma variável parcialmente através da lógica do meu código. Não estou (necessariamente) falando sobre conversões simples, mas sobre funções que alteram o tipo de uma variável, deixando-a basicamente representando o mesmo valor ou dados.
Por exemplo, eu poderia escrever um código como esse ao fazer uma solicitação da Web, usando a response
variável para armazenar um objeto addurlinfo, o conteúdo da string desse objeto e o dicionário retornado analisando a string 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)
(Ok, é um exemplo um pouco artificial, mas acho que demonstra bem a ideia). Meu sentimento é que isso é melhor do que usar três nomes de variáveis separados porque: a) transmite que a response
variável contém basicamente a mesma informação, apenas 'transformada' em um tipo diferente; eb) transmite que os objetos anteriores não ser necessário ainda mais na função, pois, ao redesignar sua variável, eu as tornei indisponíveis para o código posterior.
A desvantagem, eu acho, é que o leitor pode ficar confuso sobre que tipo de variável é a qualquer momento.
Esse estilo é ruim e devo usar três variáveis diferentes no exemplo acima em vez de reatribuir a uma? Além disso, essa prática padrão é em linguagens de tipo dinâmico, ou não? Não vi o código suficiente de outras pessoas para saber.
fonte
response_addurlinfo
,response_str
,response_dict
) são mais feio ainda. O que você faz?