- 1. 概要
- 2. コンストラクタ
- 3. デストラクタ
- 4. クラス名
- 5. メソッド名
- 6. 検証
1. 概要
まずは、基本的な部分から。
本ページは、下記のサイトを参考にさせていただきました。
「コンストラクタとデストラクタ #Python」
「class 名をインスタンスを作らずに取得する #Python」
「python で実行中のメソッド名を取得する方法」
2. コンストラクタ
コンストラクタは、「__init__」というメソッドを使用します。
3. デストラクタ
コンストラクタは、「__del__」というメソッドを使用します。
4. クラス名
クラス名は、クラス内で「self.__class__.__name__」という変数で取得できます。
5. メソッド名
これは、少し複雑。
「inspect」というモジュールを「import」して、「inspect.currentframe().f_code.co_name」というメソッドで取得できます。
6. 検証
前項までの内容を、検証するために、下記のソースを書きました。
import inspect
class MyClass():
def __init__(self):
print(self.__class__.__name__, inspect.currentframe().f_code.co_name)
def some_method(self):
print(self.__class__.__name__, inspect.currentframe().f_code.co_name)
def __del__(self):
print(self.__class__.__name__, inspect.currentframe().f_code.co_name)
myClass = MyClass()
myClass.some_method()
これを実行すると、下記の結果が得られます。
MyClass __init__
MyClass some_method
MyClass __del__
デストラクタは、クラスのオブジェクトが消滅する際に、自動で呼ばれますが。
明示的に、「del クラスオブジェクト」で呼び出すこともできます。
|
|