<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「コーディング規約」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0%e8%a6%8f%e7%b4%84/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Fri, 07 Nov 2025 03:38:40 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「コーディング規約」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】コーディング規約 PEP8の命名規則</title>
		<link>https://tech.nkhn37.net/python-pep8-naming-conventions/</link>
					<comments>https://tech.nkhn37.net/python-pep8-naming-conventions/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Sun, 27 Aug 2023 20:00:00 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[PEP8]]></category>
		<category><![CDATA[Pythonic]]></category>
		<category><![CDATA[コーディング規約]]></category>
		<category><![CDATA[命名規則]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=8823</guid>

					<description><![CDATA[Python のコーディング規約である PEP8 の命名規則に関して整理します。 Python のコーディング規約 PEP8 PEP8 の概要 PEP8 は、Python プログラミングのコーディングスタイルに関する公式 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Python のコーディング規約である <span class="jinr-d--text-color d--marker1 d--bold">PEP8</span> の命名規則に関して整理します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">Python のコーディング規約 PEP8</h2>



<h3 class="wp-block-heading jinr-heading d--bold">PEP8 の概要</h3>



<p class="wp-block-paragraph"><span class="jinr-d--text-color d--marker1 d--bold">PEP8</span> は、Python プログラミングのコーディングスタイルに関する公式なガイドラインです。公式ドキュメントは以下を参照してください。pep8-jaの方は日本語ドキュメントになります。</p>



<section class="wp-block-jinr-blocks-simplebox b--jinr-block-container"><div class="b--jinr-block b--jinr-box d--simple-box1  "><div class="c--simple-box-inner">
<ul class="wp-block-list jinr-list">
<li><a href="https://peps.python.org/pep-0008/" target="_blank" rel="noreferrer noopener">PEP8 – Style Guide for Python Code</a></li>



<li><a href="https://pep8-ja.readthedocs.io/ja/latest/" target="_blank" rel="noreferrer noopener">pep8-ja</a></li>
</ul>
</div></div></section>



<p class="wp-block-paragraph">そもそも PEP とは「<span class="jinr-d--text-color d--marker1 d--bold">Python Enhancement Proposal</span>」の略で、Python 言語としての改善提案を文書化したものです。新しい機能の提案、既存機能の変更等、Python コミュニティ全体としての議論や合意について記録するための文書となっています。PEP8 はその中の 1 つです。</p>



<p class="wp-block-paragraph">PEP8 には、インデントや行の最大長等のコーディングスタイルについても記載がありますが、本記事では特に PEP8 の命名規則について整理したいと思います。命名規則は、私も忘れてしまうことがあるので Python コーディングをする際の参考に使ってもらえればよいかと思います。</p>



<h3 class="wp-block-heading jinr-heading d--bold">PEP8 に従うべきか</h3>



<p class="wp-block-paragraph">PEP8 のコーディング規約は必ず従うべきでしょうか？ 答えは「<span class="jinr-d--text-color d--marker1 d--bold">PEP8 にこだわりすぎてはいけない</span>」です。</p>



<p class="wp-block-paragraph">PEP8 の冒頭に「A Foolish Consistency is the Hobgoblin of Little Minds (一貫性にこだわりすぎるのは、狭い心の現れである)」という項目が記載されており、PEP20 に記載のある「“Readability counts” (読みやすさは重要である)」も引用されています。</p>



<p class="wp-block-paragraph">Python らしいシンプルで読みやすいコードというのは、よく Pythonic であると言われますが、コーディング規約よりも Pythonic であることを重視すべきです。Pythonic なプログラミングについては「<a href="https://tech.nkhn37.net/pythonic-program-coding/" data-type="link" data-id="https://tech.nkhn37.net/pythonic-program-coding/" target="_blank" rel="noreferrer noopener">Pythonicなプログラムコーディング</a>」でまとめていますので参考にしてください。</p>



<p class="wp-block-paragraph">プロジェクトでコーディング規約が整備されている場合は、プロジェクト内での品質や情報共有のしやすさを保つため、プロジェクトのコーディング規約に従ってください。</p>



<p class="wp-block-paragraph">一方で、オープンソースの Python パッケージは PEP8 に従うのがおすすめです。PEP8 は標準的なコーディング規約のため多くの Python 開発者に利用されています。オープンソースとして世界の多くの開発者に協力を受ける場合には、統一感を持たせるためにも初めから PEP8 に準拠しておくことが重要です。開発が進行した後でコードのスタイルを変更するのは、大変な労力がかかり現実的ではありません。</p>



<h2 class="wp-block-heading jinr-heading d--bold">PEP8 の命名規則</h2>



<p class="wp-block-paragraph">PEP8 での命名規則スタイルと、適用するにあたって参考になる考え方を整理します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">命名規則のスタイル</h3>



<p class="wp-block-paragraph">プログラミングの命名規則スタイルとしては、以下のようなスタイルが挙げられます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>スタイル</th><th>概要</th></tr></thead><tbody><tr><td><code>CapitalizedWords</code> (<code>CamelCase</code>)</td><td>複数単語をつなげ、各単語の先頭を大文字にする</td></tr><tr><td><code>mixedCase</code></td><td>複数単語をつなげ、最初の単語を小文字、その後の単語の先頭を大文字にする</td></tr><tr><td><code>UPPERCASE</code></td><td>全ての文字を大文字にする</td></tr><tr><td><code>UPPER_CASE_WITH_UNDER_SCORES</code></td><td>大文字の単語をアンダースコアでつなげる</td></tr><tr><td><code>lowercase</code></td><td>全ての文字を小文字にする</td></tr><tr><td><code>lower_case_with_underscores</code></td><td>小文字の単語をアンダースコアでつなげる</td></tr><tr><td>アンダースコア(<code>_</code>)を先頭や末尾につける</td><td><code>_value</code> や <code>value_</code> のように先頭か末尾にアンダースコアをつける（2重のアンダースコアもある）<br>このスタイルは Python で特別な意味を持つ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Python での変数名や関数名等、各項目に適切なスタイルを以下に示します。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>適切なスタイル</th></tr></thead><tbody><tr><td>定数名</td><td><code>UPPERCASE</code> または<br><code>UPPER_CASE_WITH_UNDERSCORES</code></td></tr><tr><td>パブリック変数名</td><td><code>lowercase</code> または<br><code>lower_case_with_underscores</code></td></tr><tr><td>プライベート変数名</td><td><code>lowercase</code> または <code>lower_case_with_underscores</code> で、先頭にアンダースコア 1 つ または 2 つ</td></tr><tr><td>関数名とメソッド名</td><td><code>lowercase</code> または<br><code>lower_case_with_underscores</code></td></tr><tr><td>特殊メソッド名</td><td>先頭と末尾に 2 重のアンダースコア(<code>__</code>)</td></tr><tr><td>引数名</td><td><code>lowercase</code> または<br><code>lower_case_with_underscores</code></td></tr><tr><td>クラス名</td><td><code>CapitalizedWords</code> (<code>CamelCase</code>)</td></tr><tr><td>プロパティ名</td><td><code>lowercase</code> または<br><code>lower_case_with_underscores</code></td></tr><tr><td>モジュール名とパッケージ名</td><td><code>lowercase</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading jinr-heading d--bold">使うべきではない文字</h3>



<p class="wp-block-paragraph">単一の文字 <code>l</code> (小文字のエル)、<code>O</code> (大文字のオー)、<code>I</code>(大文字のアイ) は、変数に使わないようにしましょう。これらの文字は、一部のフォントにおいて 0 や 1 と混同しやすいです。代わりに、より説明的な名前にしましょう。</p>



<h3 class="wp-block-heading jinr-heading d--bold">定数名</h3>



<p class="wp-block-paragraph">定数は、プログラム実行中に変更されない値です。定数を表すグローバル変数には「<code>UPPERCASE</code>」または「<code>UPPER_CASE_WITH_UNDERSCORES</code>」を使います。</p>



<p class="wp-block-paragraph">Pythonでは、定数として宣言しても値の変更は可能であるため、言語仕様として値の変更を禁止できる真の意味での定数は存在しませんが、大文字を用いることで定数であることの意図を示すことができます。</p>



<h3 class="wp-block-heading jinr-heading d--bold">パブリック変数</h3>



<p class="wp-block-paragraph">パブリックな変数は、変更可能な変数で「<code>lowercase</code>」または「<code>lower_case_with_underscores</code>」を使用します。</p>



<p class="wp-block-paragraph">クラスのパブリック変数といった外部から直接変更してもよい変数は、このルールに従います。また、関数内やメソッド内の変数も同様です。</p>



<h3 class="wp-block-heading jinr-heading d--bold">プライベート変数名</h3>



<p class="wp-block-paragraph">プライベートな変数は「<code>lowercase</code>」または「<code>lower_case_with_underscores</code>」で先頭にアンダースコアを 1 つ付与します。例えば「<code>_value</code>」というような形です。</p>



<p class="wp-block-paragraph">クラスでプロパティとして制御されるような内部変数は、プライベート変数として定義しておく方がよいでしょう。</p>



<p class="wp-block-paragraph">Python では、プライベート変数と言っても厳密なプライベートではなく、変更が可能です。ただし、Pythonに慣れ親しんだ人であれば、アンダースコアが先頭に 1 つ付与されているということで直接変更をしてほしくないプライベート変数であるということを理解します。また、IDE では、こういったプライベート変数を考慮し、コード補完候補から除外してくれるものもあります。</p>



<p class="wp-block-paragraph">Python では、アンダースコアを 2 つ付与することで名前変更（マングリング）が行われます。これは、アンダースコア 1 つの場合とは違い、名前が変わることから明確に変数が隠ぺいされます。ただし、これは真のプライベートというわけではなく <code>_[クラス名][元の名前]</code> の形式であれば、アクセスすることが可能になります。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox6 ">
			<i class="jif jin-ifont-v2books" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">プロパティやクラス定義の基本は以下を参考にしてください。</p>



<p class="wp-block-paragraph"><a href="https://tech.nkhn37.net/python-class-property/" data-type="link" data-id="https://tech.nkhn37.net/python-class-property/" target="_blank" rel="noreferrer noopener">クラスのプロパティ（property）の使い方</a></p>



<p class="wp-block-paragraph"><a href="https://tech.nkhn37.net/python-class-definition/" data-type="link" data-id="https://tech.nkhn37.net/python-class-definition/" target="_blank" rel="noreferrer noopener">クラスの定義と使い方</a></p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold">関数名とメソッド名</h3>



<p class="wp-block-paragraph">関数名やメソッドの名前には変数同様に「<code>lowercase</code>」または「<code>lower_case_with_underscores</code>」を使用します。変数と同様にモジュール内のプライベートな関数を定義するときは先頭にアンダースコアをつける場合もあります。</p>



<p class="wp-block-paragraph">Python の古いモジュールではこのルールを守っていないモジュールもありましたが、Python3 では多くの再編成を行って一貫したスタイルになってきています。</p>



<p class="wp-block-paragraph">ライブラリでは <code>mixedCase</code> で定義しているフレームワークもあります。<code>lowercase</code> / <code>lower_case_with_underscores</code> なのか <code>mixedCase</code> なのかどちらに従うかはライブラリ開発の方針に従うようにしましょう。</p>



<h3 class="wp-block-heading jinr-heading d--bold">特殊メソッド名</h3>



<p class="wp-block-paragraph">Python では、特殊メソッドというものがあります。名前の先頭と末尾で 2 重のアンダースコア(<code>__</code>)があるようなケースです。これらのメソッドは、プロトコルの実装を意味するものです。</p>



<p class="wp-block-paragraph">この命名規則のメソッドは dunder メソッド（ダブルアンダースコアを短く発音したもの）と呼ばれることがあります。代表的なメソッドは、クラス定義のコンストラクタ <code>__init__()</code> などがあります。</p>



<p class="wp-block-paragraph">通常開発する関数やメソッドでは、名前の先頭と末尾で 2 重のアンダースコア(<code>__</code>)をつけないように注意しましょう。</p>



<h3 class="wp-block-heading jinr-heading d--bold">引数名</h3>



<p class="wp-block-paragraph">関数やメソッドの引数の名前には「<code>lowercase</code>」または「<code>lower_case_with_underscores</code>」を使用します。引数は、関数やメソッド内でのローカルな変数なので、上記で出てきた変数と同じ扱いです。</p>



<h3 class="wp-block-heading jinr-heading d--bold">クラス名</h3>



<p class="wp-block-paragraph">クラス名には「<code>CapitalizedWords</code> (<code>CapWords</code> または <code>CamelCase</code>)」を使用します。変数や関数と同様に、モジュール内でのプライベートなクラスを定義する場合には、先頭にアンダースコアをつけることもあります。</p>



<h3 class="wp-block-heading jinr-heading d--bold">プロパティ名</h3>



<p class="wp-block-paragraph">プロパティは「<code>lowercase</code>」または「<code>lower_case_with_underscores</code>」を使用します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">モジュール名とパッケージ名</h3>



<p class="wp-block-paragraph">モジュール名には「<code>lowercase</code>」で小文字の短い名前にすべきと言われています。読みやすくなるなら、アンダースコアをモジュール名に使っても構いません。</p>



<p class="wp-block-paragraph">パッケージ名も同様で <code>lowercase</code> の小文字の短い名前にすべきで、アンダースコアを使うのは推奨されません。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Python のコーディング規約である <span class="jinr-d--text-color d--marker1 d--bold">PEP8</span> の命名規則に関して整理しました。</p>



<p class="wp-block-paragraph">Python の公式なコーディング規約である PEP8 には、インデントや行の最大長などのスタイルに関する指示が多く記載されています。本記事では、その中でも特に命名規則に焦点を当てて整理しました。</p>



<p class="wp-block-paragraph">Python コーディングの際の参考として役立てていただければと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-pep8-naming-conventions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-06-14 08:37:56 by W3 Total Cache
-->