Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

Pythonの変数名の'_'(アンダースコア)の意味は?

f:id:nana_yu:20180316121637j:plain
大村こんにちは、PyQサポートの大村です。今日のPythonお悩み解決は、『変数名の'_'(アンダーバー)の意味は?』という質問に答えていきます。
pyq.jp

Pythonお悩み解決とは?

オンライン学習サービス「PyQ」のサービスの一つ、学習サポートに寄せられた質問の中から PyQユーザーだけでなく、学習者みなさんに役立つプログラミング言語Python一般に関する質問を選んでご紹介し、解説するコーナーです。

プログラミング学習者の目線から見たつまづきを解決していくよう、現役プログラマーのサポートチームがお答えします。

質問内容「変数名の'_'(アンダースコア)の意味は?」

PyQ の問題中に order_dozen という名前の変数がでてきます。この変数名中の '_' (アンダースコア)の意味が知りたいとご質問を受けました。

まず、Pythonの変数の命名規則についておさらいしましょう。

Pythonの変数名に利用できる文字*1は以下です。

  • アルファベット(大文字・小文字)
  • アンダースコア
  • 数値(但し、変数名の先頭には利用できない)

また、Pythonプログラムの中ですでに扱いが決まっているキーワード(ifimport など)は変数名として利用できません。

以下は、変数名として正しくありません。

  • 10x : 数値からはじまる
  • if : キーワード
  • a b : 途中にスペース
  • @a,$a,aa## : 記号を利用

話を'_'(アンダースコア)に戻します。

これは変数名をつける上での慣習の様なもので、複数の単語(例: order, dozen)を使った変数名をつけたい場合は、単語を'_'(アンダースコア)で繋げます。

  • 注文という意味の変数 -> order
  • 注文ダースという意味の変数 -> order_dozen
  • 注文のリストという意味の変数 -> order_list

あくまで慣習ですので、 order_dozenorderdozen にしても dozen にしても動作は変わりません。 ただ、'_'(アンダースコア)をつけることで、単語の区切りがわかるため見やすくなります。

そのほかのPythonで使われる_(アンダースコア)について

変数で使われる以外に、Python言語のそのほかの_(アンダースコア)の使われ方は 以前のPythonお悩み解決の記事にまとめられています。 こちらもぜひご覧ください。

blog.pyq.jp

*1:Python3.0は、ASCII範囲外の文字も利用できます(PEP3131)が、今回はASCII範囲のみについて説明します。

Copyright ©2017- BeProud Inc. All rights reserved.