質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

11666閲覧

Python の `list`, `dict` などの変数の名前付けの慣習

Paalon

総合スコア266

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/11/16 04:15

編集2020/11/16 05:25

Python の変数名の慣習について、

  • ユーザーが定義する型は大文字始まりのキャメルケース(例えば AppleTree
  • それ以外の一般の変数名は原則として小文字だけ(例えば appletree, apple_tree など)

ですが、組み込み型 list, dict などを持つ変数の名前はどういう名前を付けるのが一般的なんでしょうか?組み込み型は基本的に全て小文字なので、上の慣習はそのままでは使えないと思うのですが、どうするのが一般的なのでしょうか?

クラス list のインスタンスを割り当てられた変数の名前に、慣習はあるのかという質問であって、クラス list のインスタンスの要素を割り当てられた名前とクラス list のインスタンスを割り当てられた変数の名前の関係の慣習ではありません。つまり、仮に、Python のクラス list がクラス List という名前だったなら、語頭を小文字にして変数名は list とするところですが、本当は List ではなく、 list なので、変数名 list とかぶってしまいます。これを回避するにはどうするのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Python は PEP8 に従い、変数名はスネークケース (例: input_dir)、クラス名はキャメルケース (例: MyClass) が採用される場合が多いです。

listdict の場合は、例えば

複数系にするパターン

  • item -> items
  • file -> files
  • color -> colors

または末尾に _list (list の場合) や _map (dictの場合) などつけるパターンがあります。

  • item -> item_list
  • file -> file_list
  • color -> color_map

上記またはそれ以外の規則でも、プロジェクト内で命名規則が統一されていれば問題ないです。

投稿2020/11/16 04:28

編集2020/11/16 04:29
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Paalon

2020/11/16 05:15

私が知りたいのは、クラス `list` のインスタンスを割り当てられた変数の名前に、慣習はあるのかという質問であって、クラス `list` のインスタンスの要素を割り当てられた名前とクラス `list` のインスタンスを割り当てられた変数の名前の関係の慣習ではありません。つまり、仮に、Python のクラス `list` がクラス `List` という名前だったなら、変数名を `list` とするところですが、本当は `List` ではなく、 `list` なので、変数名とかぶってしまうのでどうするのでしょうか?という意味です。要素が `item` ならその集まりの名前を `items` にするという慣習があるのは確かにそうですね。`foo_map` という慣習は知りませんでした。要素が名前を付けやすい場合はそれで困らないのですが、そうではない場合に一般的な名前を付けたいのです。質問の仕方が悪くてすみません。回答ありがとうございます。
tiitoi

2020/11/16 06:30 編集

list や dict は組み込み関数と名前が被ってしまうので使えないので、l や lst などかぶらない名前にするというのも一つの方法ではありますが、内包記法やらラムダ関数のようにスコープが限定されている場合を除いて、list や dict のインスタンスには lst のような情報量がない名前を使うのではなく、その変数がなにを表しているかが明確になる名前を与えるべきです。 例えば、名前の一覧を表す list のインスタンスには lst という名前ではなく、names または name_list のような名前をつけるべきです。 「リーダブルコード」を読むと変数の命名規則について、参考になるヒントが書いてあります。
guest

0

ベストアンサー

つまり、仮に、Python のクラス list がクラス List という名前だったなら、語頭を小文字にして変数名は list とするところですが、本当は List ではなく、 list なので、変数名 list とかぶってしまいます。これを回避するにはどうするのでしょうか?

listlst, dictdctと使うのが一般的といってよいと思います。
PEP:8 - Python コードのスタイルガイドのサンプルコードでも使われています。

投稿2020/11/16 06:11

can110

総合スコア38341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

それ以外の一般の変数名は原則として小文字だけ(例えば apple)

が、まさに該当すると思いますが。
変数名が複数の単語からなる場合はapple_itemのように_を使ってスネークケースにします。
あとは、どういう単語を使うかという意味の話になると、ネーミングルールを定めます。

投稿2020/11/16 05:07

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問