Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのpass文とは?使い方を徹底解説

Pythonのpass文は、プレースホルダー(置き場所)として機能するキーワードです。for文やif文などの空のコードブロックに記述することで、構文エラーを防ぐことができます。Pythonは、pass文が書かれた部分を「空(何もしない)」として認識します。


クラスや関数、処理の中にプレースホルダーを入れたい場面に出くわすことがあります。例えば、大規模なプログラムを書いていてforループを組み込みたいけれど、先に書くべき別のコードがあるため、まだループの中身を実装できないといったケースです。

そんなときに役立つのがPythonのpass文です。pass文は、関数・クラス・ループなどのコードブロックを後から実装するためのプレースホルダーとして使われます。

この記事では、Pythonにおけるpass文の使い方を解説し、実際のプログラムでの使用例をいくつか紹介します。

Pythonのpass文とは

pass文は、「このコードの部分は空であるが、構文エラーにはしない」ということをPythonに伝えるためのものです。Pythonインタープリタはpass文を読み込んで処理しますが、プログラムの流れには影響を与えません。

pass文の構文は以下のとおりです。

pass

pass文は引数も変数も取りません。Pythonのreturnキーワードと同様に、単独で使えるキーワードです。

pass文が役立つシーンはいくつかあります。明確な使用ガイドラインはありませんが、構文的にpass文が必要になるのは主に以下のようなケースです。

  • 空のクラスや関数を定義するとき
  • try-exceptブロック内で処理をスキップするとき
  • ループ内で処理をスキップするとき

これらのコードブロックは、まったく空のままにすることができません。コードを何も書かないと、Pythonは構文エラーを返します。

pass文の使用例

ここからは、Pythonのpass文の具体的な使用例を見ていきましょう。

銀行口座クラスの例

普通預金口座と定期預金口座の情報を管理するプログラムを作っているとします。口座情報の構造は、Pythonのクラスで定義します。

定期預金口座(SavingsAccount)クラスに着手する前に、まずは当座預金(CheckingAccount)クラスに集中して作業を進めたいとしましょう。

後で戻ってくることを忘れないように、SavingsAccountクラスにプレースホルダーを入れておくことができます。

SavingsAccountクラスにpass文を追加してみましょう。CheckingAccountクラスの作業が完了したら、プレースホルダーを削除して、実際のコードを記述すればOKです。以下がその例です。

class CheckingAccount:
	def __init__(self, name):
		self.name = name

class SavingsAccount:
	pass

このコードを実行すると、CheckingAccountクラスとSavingsAccountクラスの両方が作成されます。ただし、SavingsAccountクラスにはまだ中身がありません。passキーワードは、クラスに実行すべきコードを追加するまでの間、プレースホルダーとして機能しています。

書店のforループの例

次に、ループ内でpass文を使って処理をスキップする例を見てみましょう。あなたは書店のオーナーで、「習慣づくり」カテゴリーの本のタイトルをすべてコンソールに出力したいとします。ただし、在庫切れの『Atomic Habits』だけは出力したくありません。その場合、次のようなコードで実現できます。

books = ['The Power of Habit', 'Atomic Habits', 'Hooked: A Guide to Building Habit Forming Products', 'Mini Habits', 'The Miracle Morning']

for i in range(0, len(books)):
	if books[i] == 'Atomic Habits':
		pass
	else:
		print(books[i])

print('Program complete.')

このコードを実行すると、次の出力が得られます。

The Power of Habit
Hooked: A Guide to Building Habit Forming Products
Mini Habits
The Miracle Morning
Program complete.

最初の行では、Pythonの配列(リスト)を宣言しています。このリストには、店舗の「習慣づくり」カテゴリーの本が含まれています。

続いて、books配列内のすべての本を順番に処理するPythonのforループを宣言します。

本のタイトルが『Atomic Habits』であれば、その本はスキップされます。それ以外の場合は、本のタイトルがコンソールに出力されます。そして、ループが終了すると、「Program complete.」というメッセージがコンソールに出力されます。

passはプレースホルダーとして機能し、『Atomic Habits』のタイトルを出力せずにスキップできるようにしています。

もしpass文を書かなかった場合、コードは次のようになります。

...
for i in range(0, len(books)):
	if books[i] == 'Atomic Habits':
	else:
		print(books[i])
...

このコードを実行すると、if文を空にできないため、Pythonはエラーを返します。表示されるエラーは次のとおりです。

IndentationError: expected an indented block

後からここに追加のコードを入れる予定があるかもしれません。例えば、「この本は在庫切れです」というメッセージを出力したい場合などです。あるいは、そのままにしておくこともあるでしょう。

まとめ

Pythonのpass文は、プログラムの一部に後でコードを追加する意図を示すためのプレースホルダーです。構文はシンプルに「pass」と書くだけで、ループ、if文、クラスなどで使用できます。

この記事では、Pythonでpass文を使ってプレースホルダーを記述する方法と、pass文を使用する理由について解説しました。

Pythonのプログラミング学習に興味がありますか?初心者から中級者レベルの開発者に向けて、学習の始め方や継続のためのヒントをまとめたガイドもぜひ参考にしてください。

  1. Python関数に辞書を引数として渡す方法をわかりやすく解説

    Pythonでは、辞書(dict)をそのまま関数の引数として渡すことができます。関数の中では、受け取った辞書のキーと値のペアを順番に取り出して処理し、結果を出力することが可能です。 以下のコードでは、辞書 d を関数 f の引数として渡し、関数内で各キーと値のペアに対して「値 × 2」の計算を行っています。 例 d = {a: 1, b: 2, c: 3} def f(dict): for k, v in dict.items(): print(k, 2 * v) f(d) 出力 a 2 b 4 c 6 コードの解説 辞書 d には、キー a・b・c に対して、そ

  2. Pythonで関数を引数として渡す方法をわかりやすく解説

    Pythonでは、関数もオブジェクトの一つとして扱われるため、他の関数の引数として渡すことができます。この仕組みを活用すると、柔軟で再利用性の高いコードを書くことができます。map()関数を使った例Pythonが標準で提供している代表的な例が、第一引数に関数を受け取る map() 関数です。map(function, iterable, ...) — iterable(イテラブル)の各要素に対してfunctionを適用し、その結果を返します。もちろん、独自に定義したカスタム関数でも、引数として関数を受け取るように実装できます。自作関数sqr(x)を引数として渡すここでは、リストの各要素を2乗す