Pythonでinspectモジュールを使用し変数が関数かどうかを検出する

スポンサーリンク

Pythonでinspectモジュールを使用し変数が関数かどうかを検出してみます。

なお、inspectモジュールは、モジュール、クラス、メソッド、関数などのライブオブジェクトに関する情報を取得するのに役立つ便利な関数を提供している。Pythonに事前にインストールしておく必要はないです。

■Python

Google Colaboratory(Google Colab),2022年11月25日現在、Python 3.7.15を使用している。

■inspectモジュールを使用し変数が関数かどうかを検出する

では、早速inspectモジュールを使用し変数が関数かどうかを検出するスクリプトを書いていきます。

■コード

from inspect import isfunction

def test_a(a, b):
    return a+b
  
print(isfunction(test_a))

value_1 = 50
print(isfunction(value_1))

今回はinspectモジュールのisfunctionを「from import」で呼びます。isfunctionを使用すると、関数である場合はブール値である「True(真)」 を返し、それ以外の場合は「false(偽)」を返します。

呼び出した後にdef文を用いてtest_aという関数を定義する。関数の括弧内には引数,パラメータとしてa,bを設定します。設定後、関数が呼び出された時に実行する処理をdef文内に記述します。今回は定義した関数に渡された引数,パラメータを算術演算子を用いて加算(引き算,”+”(プラス))を行い、演算された結果をreturnとして返すものです。

関数を定義後、isfunction()を用います。括弧内には引数,パラメータとして今回定義した関数名であるtest_aを渡します。これで変数が関数かどうかを検出します。検出された結果をprint()を用いて出力します。

次に今回は比較としてvalue_1という変数を定義し、その中に「50」という数値を格納します。格納後、isfunction()を用います。括弧内には引数,パラメータとしてvalue_1変数を渡します。これで変数が関数かどうかが判定され、結果がprint()で出力されます。

■実行・検証

このセルを保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、inspectモジュールを使用し、今回定義した関数が格納された変数が関数かどうかが検出され、検出結果がprint()で出力されました。なお、関数を格納した変数は「True(真)」 を出力し、そうではない変数は、「false(偽)」が出力されました。

コメント

タイトルとURLをコピーしました