Python-Class(クラス)ライフサイクルとクラス属性方法(魔法方法)
8492 ワード
組み込み属性とメソッド
メソッド名
タイプ-
さぎょう
方法
クラスインスタンス化時にこの関数を自動的に呼び出す
方法
オブジェクトがメモリに破棄される前に、自動的に呼び出されます.
方法
クラスのインスタンス印刷時にこの関数を呼び出す(戻る)ユーザーが見た
方法
上のstr関数と同じように、開発者が見たものに戻ります.
方法
存在しないプロパティを呼び出すと、このメソッドにアクセスします.
方法
クラスがこのメソッドを実装すると、このタイプのオブジェクトを関数として使用することに相当し、カッコ演算子を再ロードすることに相当します.
詳細はPython 3標準ライブラリを参照
ライフサイクルオブジェクトは呼び出し から開始する.オブジェクト に終了する.は、オブジェクトのライフサイクル中にアクセスすることができ、オブジェクトのプロパティ、またはオブジェクトにメソッド を呼び出すことができる.
例:
次のように実行します.
del削除
Class魔法の方法
上の表と説明の差は多くないので、コードを貼って例を挙げます.
怠け者は次の実行結果を見て
メソッド名
タイプ-
さぎょう
__init__
方法
クラスインスタンス化時にこの関数を自動的に呼び出す
__del__
方法
オブジェクトがメモリに破棄される前に、自動的に呼び出されます.
__str__
方法
クラスのインスタンス印刷時にこの関数を呼び出す(戻る)ユーザーが見た
__repr__
方法
上のstr関数と同じように、開発者が見たものに戻ります.
__ getattr __
方法
存在しないプロパティを呼び出すと、このメソッドにアクセスします.
__call__
方法
クラスがこのメソッドを実装すると、このタイプのオブジェクトを関数として使用することに相当し、カッコ演算子を再ロードすることに相当します.
詳細はPython 3標準ライブラリを参照
ライフサイクル
()
から作成され、ライフサイクルは__del__
メソッドが呼び出されると、ライフサイクルは例:
class Cat:
def __init__(self, name):
self.name = name
print(' ')
def __del__(self):
print(' ')
# Tom
tom = Cat('Tom')
print(tom.name)
print('-' * 50)
次のように実行します.
Tom
--------------------------------------------------
del削除
tom
を呼び出します-- omit --
# Tom
tom = Cat('Tom')
print(tom.name)
del tom
print('-' * 50)
Tom
--------------------------------------------------
Class魔法の方法
上の表と説明の差は多くないので、コードを貼って例を挙げます.
class Cat:
#
def __init__(self, name):
self.name = name
print('%s ' % self.name)
# ,
def __del__(self):
print(' ')
# ( )
def __str__(self):
return ' Cat '
# str ,
def __repr__(self):
return '__repr__'
#
def __getattr__(self, item):
item = 'A'
print(' , %s' % item)
# , ,
def __call__(self, *args, **kwargs):
print(' %s __call__ ' % args)
# Tom
tom = Cat('Tom')
print(tom.name)
# del tom
print('-' * 50)
print(tom)
tom.sex
print('*' * 50)
tom('Tim')
怠け者は次の実行結果を見て
Tom
Tom
--------------------------------------------------
Cat
, A
**************************************************
Tim __call__
__call__
定義がなければtom('Tim')
でインスタンスで直接クラスを呼び出すと保持されますよ~