第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

python實(shí)現(xiàn)單例模式怎么寫啊?

python實(shí)現(xiàn)單例模式怎么寫啊?

開滿天機(jī) 2018-04-04 17:30:40
python實(shí)現(xiàn)單例模式是什么?我面試的時(shí)候有個(gè)面試官讓我手寫2個(gè)單例設(shè)計(jì)模式,我是個(gè)菜鳥不會(huì)寫,結(jié)果掛了?,F(xiàn)在就想知道單例設(shè)計(jì)模式到底是怎么一回事要怎么寫啊?
查看完整描述

2 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

這個(gè)網(wǎng)上有很多的,你可以搜一搜,單例設(shè)計(jì)模式很多面試官都會(huì)考的,最好是記住一兩個(gè),我下面寫一個(gè)例子給你看一下

使用__new__方法

在__new__方法中把類實(shí)例綁定到類變量_instance上,如果cls._instance為None表示該類還沒有實(shí)例化過,實(shí)例化該類并返回。如果cls_instance不為None表示該類已實(shí)例化,直接返回cls_instance

class SingleTon(object):

    def __new__(cls,*args,**kwargs):

        if not hasattr(cls,'_instance'):

            cls._instance = object.__new__(cls,*args,**kwargs)

        return cls._instance

class TestClass(SingleTon):

    a = 1

test1 = TestClass()

test2 = TestClass()

print test1.a,test2.a


test1.a=2

print test1.a,test2.a


print id(test1),id(test2)


查看完整回答
反對(duì) 回復(fù) 2018-07-12
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用裝飾器,建立過實(shí)例的就放到instances里面,下次建立的時(shí)候先檢查里面有沒有

def SingleTon(cls,*args,**kwargs):

    instances = {}

    print instances

    def _singleton():

        if cls not in instances:

            instances[cls] = cls(*args,**kwargs)

        print instances

        return instances[cls]

    return _singleton


@SingleTon

class LastClass(object):

    a = 1

test1 = LastClass()

print test1.a

test2 = LastClass()

print test2.a


查看完整回答
反對(duì) 回復(fù) 2018-07-12
  • 2 回答
  • 0 關(guān)注
  • 527 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)