スポンサーリンク

コードが書ける!数式が書ける!AAが書ける!スタンプが貼れる!

無料の匿名掲示板型SNS「このはちゃんねる

新規会員募集中!

【Python】何もしない命令、pass文の使い方【入門第50回】

164, 2019-09-10

目次

pass文とは?

こんにちは、narupoです。

今回はPythonのpass文を解説します。
pass文は何も実行しない文です。
pass文を使うと空の関数やクラスを作ったり、何もしないif文やforを作ることができます。

pass文について、具体的には↓を見ていきます。

  • pass文の使いどころ
  • if文のpass文
  • for文のpass文
  • while文のpass文
  • 関数のpass文
  • ラムダ式のpass文
  • クラスのpass文
  • try文のpass文

pass文の使いどころ

pass文は何も実行しない文ですが、なぜこんな文があるのでしょうか?
これは、Pythonの設計と深いつながりがあります。

Pythonはインデントでコードの階層を表現する言語です。
しかし、インデントしてもなにもコードが書いてないとPythonインタプリタは階層を認識してくれません。
そのため「何もしない、空の」処理を書くことが出来ないのです。

そこで「何もしない、空の」処理を書きたい場合、Pythonではこのpass文を使います。
「何もしない文」を定義することで、「何もしない、空の」処理を実現することができるのです。

この「何もしない、空の」処理というのは、プログラミングをしていると意外なほどによく使います。
たとえば関数を作ったけど中身の処理は後で考えたいという時、pass文で関数の中身を書いておくということができます。
他にも空のクラスを作ってインスタンスに属性を設定したいとなったとき、pass文で空のクラスを定義できます。

このようにpass文というのは意外なほどによく使う文です。

if文のpass文

if文でpass文を書くには↓のようにします。

if True:
    pass

↑のif文は真ですが、pass文は何も実行しない文なので何も実行されません。

for文のpass文

for文でpass文を書くには↓のようにします。

for i in range(10):
    pass

ループは10回回りますが、何も実行されません。

while文のpass文

while文でpass文を書くには↓のようにします。

while True:
    pass

↑のコードを実行すると無限ループになりますが、ループごとの処理は何も実行されません。
ただ実行するとCPUがビジーになるので、実行してしまったらCtrl+Cで脱出してください。

関数のpass文

関数でpass文を書くには↓のようにします。

def func():
    pass

func()

↑の関数funcは何も実行しない関数です。
そのため↑のコードを実行しても何も表示されません。

ラムダ式のpass文

ラムダ式でpass文を書くには↓のようにしたいところですが、

lambda: pass

↑のコードはエラーになります。

  File ".\sample.py", line 1
    lambda: pass
               ^
SyntaxError: invalid syntax

これは関数で表現すると↓のような感じです。

def func():
    return pass

return文にpass文を書くことは出来ません。
そのため、何もしないラムダ式を書きたい場合は↓のようにします。

lambda: None

↑のラムダ式で作られる関数オブジェクトは何もしない関数です。
ただ、厳密にはNoneを返しているので、Noneを返すだけの関数と言えます。

クラスのpass文

空のクラスを作るには↓のようにします。

class Cat:
    pass

この空のクラスはクラスとして機能するので、たとえば↓のようなコードは合法です。

class Cat:
    pass

cat = Cat()
cat.name = 'ミケ'
cat.age = 10

クラスのインスタンスには動的に属性を作ることが出来るので、↑のように変数のネームスペースとして利用することができます。
これは便利なので覚えておきましょう。

try文のpass文

何もしないtry文は↓のように書きます。

try:
    pass
except:
    pass

↑のコードは何も実行されません。

おわりに

pass文は意外に利用頻度が高い文の1つです。
特に空のクラスを定義したい時によく使います。
CPUによっては命令セットにnopeという何もしない命令があるらしいです。
「何もしない」というのは機械と相性がいい命令なんですね。
何もしないプログラムがあってもそれはそれでいいものです。

以上、次回に続きます。

また見てね

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク