見出し画像

【5つコツ】クリーンなPythonコードを書く!

きれいなPythonのコードを書くにはどうしたらいいか、日頃から考えていたことはありますか? 今日は、あなたのコードが読みやすく、正しく動作し、Pythonが提供するモジュールを活用できるようにするための5つのヒントを紹介します。 この記事を気に入ったら、フォローをしてお願いします。

</>覚えやすい変数名をつける

コードを書くとき、私たちはよく、読みやすく、発音しやすく、覚えやすい説明的な変数名を考えません。これはよくない習慣です。なぜなら、説明的な変数名を考慮しないときに節約された時間は、その後、変数が何をするのかを理解するときに費やすからです。

❌Bad way

from datetime import date
ymdstr = date.now().isoformat()

✅Good way

from datetime import date
currentDate = date.now().isoformat()

変数の機能をよりよく説明しているのはどれですか? ymdstrまたはcurrentDate?

変数を宣言して適切な名前を選択するときは、後で変数の機能を理解するために2倍(または3倍)の時間を無駄にするよりも、数秒に費やす方がよいでしょう。

</>検索しやすい変数名を作成

コードを書くことよりも、コードを読んで理解しようとすることに多くの時間を費やす。

❌Bad way

# What the h*ck is 420 for?
result = serializer.serialize(data, 420)

✅Good way

json = serializer.serialize(data, sort_keys=True, indent=4)

2つのコード(良いコードと悪いコード)を読んでみると、悪いコードの前に良いコードのエキスを素早く理解する方が簡単であることがわかります。

</>説明力の高い名をつける

ある関数を別の関数に引数として送ったとき、それが問題を引き起こす唯一の理由は、コードを正しく追跡できず、コードが何をするのかを理解するのに苦労していることです。

❌Bad way

import re
address = 'S Grand Ave, LA 90013'
city_zip_code_regex = re.compile("^[^,]+,\s*(.+?)\s*(\d{5})$")
matches = city_zip_code_regex.match(address)
save_city_zip_code(matches.group(1), matches.group(2))

✅Good way

address = 'S Grand Ave, LA 90013'
city_zip_code_regex = re.compile("^[^,]+,\s*(?P<city>.+?)\s*(?P<zipcode>\d{5})$")
matches = city_zip_code_regex.match(address)
save_city_zip_code(matches.group('city'), matches.group('zipcode'))

この例では、サブパターンに名前を付けることで正規表現の依存関係を減らす方法がわかります。 これにより、コードが読みやすく、理解しやすくなります。

</>if-elseを使いすぎない

将来のことをあまり考えずにコードを書きましたが、ある時点でコードを変更しなければならない場合があります。 だから、if-elseを乱用しないでください。 if-elseがネストされるほど、コードの理解が難しくなります。

❌Bad way

def is_shop_open(day: str):
 if day:
  day = day.lower()
  if day == 'friday':
   return True
  elif day == 'saturday':
   return True
  elif day == 'sunday':
   return True
  else:
   return False
 else:
  return False

✅Good way

def is_shop_open(day: str):
 
 for open_day in ['friday','saturday','sunday']:
  if day == open_day:
   return True
 return False

この例がきれいでしょう。 行数が少なくてわかりやすい。 明示的なものは暗黙的なものより優れています。

</>不必要な文脈を加えない

このスキルの基本は「繰り返さない」ことです。 もし、クラスやオブジェクトの名前がすでに何かを記述していたり、その機能に関する明示的な情報を提供している場合、変数名で繰り返すのはよくないです。

❌Bad way

class Car:
 carMake = ''
 carModle = ''
 carColor = ''
    #...
}

✅Good way

class Car:
 make = ''
 modle = ''
 color = ''
    #...

そうすることで、同じことを繰り返さないようにするのです。繰り返しは、私たちにとって価値をもたらさないからです。 シンプルであればあるほど良い。

まとめ

よりクリーンで効率的なPythonのコードを書くことは、自分のコーディング能力を試すだけでなく、コードを読む人にとっても理解しやすく、仕事効率が上がります。

以上です!上記がお役に立てるのであれば、facebook『IT視界』をフォローしてください~ ヘージでpython/データ分析/機械学習の電子書籍とITスキルマップが共有されて、これからも良いITに関する情報をお届きます!:)

この記事が気に入ったらサポートをしてみませんか?