アンダースコアとダンダー

投稿者: | 2022-11-25

目次

_var(先頭の単一の”_”)

  • アンダースコアプレフィックス
  • これで始まる変数やメソッドは、内部で使用するための名前(プログラマへのヒント)

var_(末尾の単一の”_”)

  • その名前がPythonのキーワードと衝突するのを避けるためのもの
  • アンダースコアポストフィックス
  • 例)classやdefを変数名として使用できないため、class_などとする

__var(先頭の二重の”_”)

  • 二重のアンダースコアプレフィックスを使用すると、Pythonインタープリターはサブクラスでの名前の衝突を避けるために属性の名前を書き換える
  • ネームマングリング?

__var__(先頭と末尾の二重の”_”)

  • 二重のアンダースコア(ダブルアンダースコア)は「ダンダー」と呼ぶ
  • __init__は「ダンダーinitダンダー」と呼びたいが違う、「ダンダーinit」と呼ぶ
  • マジックメソッドともよぶ

_(先頭の”_”)

  • 変数が一時的なものである、あるいは重要でないことを示すときに使う
for _ in range(32):
  print('Hello')
  • 式をアンパックするときに具体的な値を無視するため「どうでもよい」変数として_を使うこともある
car = ('red', 'auto', 12, 3812.4)
color, _, _, mileage = car
>>color
'red'