言語バージョン 3.9.1

公開日 2021年1月30日 JST

コード例の出力としてprint関数を使用しています。

使用方法がわからない場合は以下のページを参照してからコード例を確認してください。

print関数の使用方法

pass

このページでは豊富な例を用いてPythonのpass文の使い方を学ぶことができます。

pass文はフロー制御文の1つです。

Pythonでは 関数クラス を定義する際に、該当のブロック内に何も書かない、もしくはコメントのみの記述が許されていません。
pass文を使用すると「何もしない」ということを文法エラーなく表現することができ、 詳しい処理内容が決まっていない場合の仮置きとすることができます。

TL;DR

基本

# Pythonは文法上ブロック内に処理を書く必要あり
def func1():
    # TODO
==> IndentationError: expected an indented block




# pass文は「何もしないこと」を明示的に文法エラーなく指定できる
def func1():
    # TODO
    pass




# 一行での表現
def func2(): pass




# 処理も書く場合
def func3():
    pass
    print('This is func3.')

func3()
==> This is func3.

関連情報:def(関数定義)の使用方法

様々な場面での活用

# そのまま
pass




# クラス
class Person:
    pass




# if文
if True:
    pass
elif False:
    pass
else:
    pass




# 例外処理
try:
    raise Exception
except Exception:
    pass
else:
    pass
finally:
    pass

関連情報:class(クラス定義)の使用方法

関連情報:ifの使用方法

関連情報:例外処理(try,except,else,finally)の使用方法

解説

基本

pass文は「何もしない」ということをプログラム内でエラーなく表現することができます。 そのため、将来的に実装するが、現時点では詳細な実装が決まっていない関数やクラスのブロック内にpass文を指定する場面が多いです。 同様の場面でpass文を指定せず、何も記述しない、またはコメントのみの記述をした場合にはIndentationErrorが発生してしまいます。

pass文の前後には実際の処理を記述することができます。 しかし、pass文は実行された際に無視されるだけなので、処理が実装された場合の消し忘れに注意してください。

# pass文を書かない場合
def func1():
    # TODO
==> IndentationError: expected an indented block




# pass文を書く場合(エラー)
def func2():
    # TODO
    pass




# 一行で書く
def func3(): pass





# 処理を書く場合
def func4():
    print('python')
    pass

func4()
==> python

関連情報:def(関数定義)の使用方法

様々な場面での活用

前項では関数を使用した例だけを紹介しましたが、pass文は様々な場面で使用することができます。

以下のコードでは クラス定義if文例外処理 での使用例を掲載しています。 実質意味のない記述例もありますが、コードで何もしないことを明示的に表現したい場面での実装例にしてみてください。

# そのまま
pass




# クラス
class Language:
    pass




# if文
if False:
    pass
elif True:
    pass
else:
    pass




# 例外処理
try:
    raise RuntimeError
except RuntimeError:
    pass
else:
    pass
finally:
    pass

1次情報

pass文 - その他の制御フローツール - Pythonドキュメント

pass文 - 単純文 (simple statement) - Pythonドキュメント