logo

パイソン |関数名を取得するにはどうすればよいですか?

最も顕著なコーディング スタイルの 1 つは、OOP パラダイムに従うことです。このため、現在では、モジュール化されたコードを記述し、デバッグを増やし、より堅牢で再利用可能なコードを作成することが重要視されています。これらすべてが、さまざまなタスクにさまざまな関数を使用することを奨励したため、関数の特定のハックを知る必要があります。この記事では、関数の名前を出力する方法について説明します。これを行うための特定の方法について説明しましょう。

方法 1: function.__name__ を使用して Python で関数名を取得する

この機能はPython3でPython3で導入されました。



Python3

Javaでintを文字列に変換する






# initializing function> def> GFG():> >return> 'You just called for success !!'> # printing function name> # using function.__name__> print>(>'The name of function is : '> +> GFG.__name__)>



>

>

出力:

The name of function is : GFG>

方法 2: function.func_name を使用して Python で関数名を取得する

単純な関数プロパティ関数 func_name を使用すると、関数の名前を取得できるため、テストの目的や、場合によってはドキュメントの作成にも非常に便利です。欠点は、これが Python2 でのみ機能することです。

パイソン




# initializing function> def> GFG():> >return> 'You just called for success !!'> # printing function name> # using function.func_name> print>(>'The name of function is : '> +> GFG.func_name)>

Javaマップの例

>

>

出力:

開発者モードをオフにする
The name of function is : GFG>

方法 3: __qualname__ 属性を使用して Python で関数名を取得する

__qualname__ は __name__ よりも完全な情報を提供するため、デバッグに役立ちます。オブジェクトまたはクラスから名前を抽出するには、その __qualname__ 属性を使用することもできます。

Python3




def> Geekforgeeks():> >pass> class> Geekforgeeks(>object>):> >def> my_method(>self>):> >pass> # 'my_function'> print>(Geekforgeeks.__qualname__)> # 'My_Class.my_method'> print>(Geekforgeeks.my_method.__qualname__)>

>

>

出力:

Geekforgeeks Geekforgeeks.my_method>

方法 4: Python で検査モジュールを使用して関数名を取得する

このコードは、検査モジュールをインポートし、関数の名前を返す関数 get_function_name() を定義します。この関数は、inspect.currentframe() 関数を使用して現在の関数のフレーム オブジェクトを取得し、フレーム オブジェクトの f_code 属性の co_name 属性 (関数の名前) を返します。

文字列Javaを比較する

Inspection.currentframe() 関数は、呼び出し元のフレームのフレーム オブジェクトを返します。フレーム オブジェクトは FrameInfo クラスのインスタンスであり、関数のコード オブジェクトである f_code 属性や関数の名前である co_name 属性など、フレームに関する情報を提供するいくつかの属性があります。

最後に、コードは get_function_name() 関数を使用して関数の名前を出力します。

Python3




import> inspect> # initializing function> def> get_function_name():> ># get the frame object of the function> >frame>=> inspect.currentframe()> >return> frame.f_code.co_name> # printing function name> print>(>'The name of function is : '> +>get_function_name())># test_function> #This code is contributed by Edula Vinay Kumar Reddy>

文字列をintに変更する方法

>

>

出力

The name of function is : get_function_name>

このアプローチの時間計算量は O(1) で、補助空間は O(1) です。