関数内のローカル変数を使用する場合、推奨されるスタイルはありますか?スタイル2のように、より明示的なローカル変数をスタイル1のように使うべきでしょうか?ベストプラクティス:関数内のローカル変数(明示的か暗黙的か)
二つの可能なスタイル:
スタイル1:
import re
def doc_to_lower(url_raw):
url_lower = [word.lower() for word in url_raw]
return url_lower
def process_data(url_raw):
url_split = re.split('//|/|-', url_raw)
url_lower = doc_to_lower(url_split)
return url_lower
url = 'http://www.bbc.com/sport/football/41653935'
tokens = process_data(url)
for token in tokens:
print(token)
スタイル2:
import re
def doc_to_lower(url_raw):
return [word.lower() for word in url_raw]
def process_data(url_raw):
return doc_to_lower(re.split('//|/|-', url_raw))
url = 'http://www.bbc.com/sport/football/41653935'
tokens = process_data(url)
for token in tokens:
print(token)
"多くの良い質問は、専門家の経験に基づいてある程度の意見を生成しますが、この質問に対する回答は、事実、参考文献、または特定の専門知識ではなく、概ね意見に基づいている傾向があります。 - 答えを見てみよう:「私はこれが好きだ、私の個人的なこと...」 –
No.(12件) –
意見を別として、スタイル1の段階的なバージョンは明確な利点がある例外。 Pythonは、例外が発生した場所を正確に説明するのはあまり良くありません。なぜなら、複雑な 'return'文のスタイルを取得しながら、非常に素早く理由を絞り込むのに役立つ' url_split'を割り当てるときに、 2は多かれ少なかれ推測を残します。 'a + b + c + d + e + f'を想像して' TypeError:+: 'int'と 'str'に対してサポートされていないオペランドの型を返します。どちらが犯人ですか?しかしそれはトレードオフです。あまりにも分割すると、コードが判読不能になります。 – Alfe