Python----単例

1278 ワード

目的:クラスにオブジェクトを作成させ、システム内で唯一のインスタンスのみを作成します.
クラス名()を実行するたびに返されるオブジェクトは、メモリアドレスが同じです.
new内蔵メソッドを書き換える必要があり、必ずreturn supper()に戻る.new(cls)
newはオブジェクトに空間を割り当て,オブジェクトの参照を返す
Initオブジェクトの初期化、インスタンスプロパティの定義
class MusicPlayer(object):

    def __new__(cls, *args, **kwargs):
        # 1.      ,new         
        print('    ,     ')

        # 2.        
        instance = super().__new__(cls)

        # 3.        
        return instance

    def __init__(self):
        print('      ')


player = MusicPlayer()
print(player)

    ,     
      
__main__.MusicPlayer object at 0x0000000001E1E828