変数に固定型がないPython(および場合によってはPHP)では、コードのロジックの途中で変数に対して「型変換」を頻繁に実行します。私は(必ずしも)単純なキャストについて話しているのではなく、基本的に同じ値またはデータを表すまま、変数の型を変更する関数について話しています。
たとえば、Webリクエストを実行するときに、response
変数を使用してaddurlinfoオブジェクトを格納し、次にそのオブジェクトの文字列コンテンツ、および文字列を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)
(さて、それは少し不自然な例ですが、私はそれがアイデアをうまく示していると思います)。これは、3つの個別の変数名を使用するよりも良いと思います。これは、a)response
変数に基本的に同じ情報が含まれていること、別の型に「変換」されていること、b)以前のオブジェクトがそうではないことを伝えるためです。これらの変数を再割り当てすることで、後のコードで使用できなくなったため、関数のさらに下で必要になります。
トレードオフは、おそらく、ある時点で変数がどのタイプであるかについて読者が混乱する可能性があるということです。
これは悪いスタイルですか?上記の例では、1つに再割り当てする代わりに3つの異なる変数を使用する必要がありますか?また、これは動的に型付けされた言語での標準的な方法ですか?他の人のコードを知るのに十分なほど見ていません。
response_addurlinfo
、response_str
、response_dict
まだ醜いです)。職業はなんですか?