ホームページ  >  記事  >  バックエンド開発  >  Pythonのデストラクタとコンストラクタの使い方を解説

Pythonのデストラクタとコンストラクタの使い方を解説

巴扎黑
巴扎黑オリジナル
2017-07-17 16:10:142863ブラウズ
class Test(object):
    def __init__(self, name):
        self.name = name
        print('这是构造函数')

    def say_hi(self):
        print('hell, %s' % self.name)

    def __del__(self):
        print('这是析构函数')

obj = Test('bigberg')

obj.say_hi()

del obj

#输出
  这是构造函数


  hello bigberg


  这是析构函数

Constructor

クラスのコンテンツの状態を初期化するために使用され、Python によって提供されるコンストラクター型 __init__() 、つまり、クラスがインスタンス化されるときに関数が実行されます、 __init__( ) メソッドはオプションで、指定しない場合、Python はデフォルトの __init__ メソッドを提供します。

Destructor

「__del__」はデストラクタで、delを使ってオブジェクトを削除する際に、そのオブジェクトが特定のスコープ内で呼び出される際に、他のスコープから飛び出すことになります。デストラクターもスコープと同時に 1 回呼び出され、メモリ領域を解放するために使用できます。

__del__() もオプションです。指定しない場合、Python はバックグラウンドでデフォルトのデストラクターを提供します

デストラクターを明示的に呼び出したい場合は、del キーワードを使用できます: del obj
ガベージコレクションメカニズム
s = '123'
print('del...running')
del s

delを使ってオブジェクトを削除するとき、オブジェクトのメモリ空間は直接クリアされません。 Python は、リサイクルを処理するために「参照カウント」アルゴリズムを使用します。つまり、オブジェクトがそのスコープ内の他のオブジェクトによって参照されなくなると、Python はそのオブジェクトを自動的にクリアします。

デストラクタ__del__()は、削除されたオブジェクトが参照されると、そのメモリ空間を自動的にクリアします。

コンストラクター:

は、クラスのコンテンツ状態を初期化するために使用されます。Python によって提供されるコンストラクターは、クラスがインスタンス化されるときにこの関数が実行されることを意味します。次に、最初に初期化するプロパティをこの関数に入れることができます。次のプログラム:

Pythonのデストラクタとコンストラクタの使い方を解説__init__() メソッドはオプションです。指定しない場合、Python はデフォルトの __init__ メソッドを提供します

一般的なデータ取得には、定義された get メソッドと set メソッドが必要です

以上がPythonのデストラクタとコンストラクタの使い方を解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。