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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創(chuàng)建獨立對象

如何創(chuàng)建獨立對象

慕哥6287543 2022-01-05 20:29:54
我創(chuàng)建的兩個對象有問題。我有一個獲取一些數(shù)據(jù)的循環(huán)。我將這些數(shù)據(jù)保存在一個對象中,并且在每個循環(huán)中我想查看我的數(shù)據(jù)是否已更改。如果是真的,我會將數(shù)據(jù)保存在日志中。問題是,當(dāng)我刷新 actVar 時,我的 prevVar 也發(fā)生了變化。這是我的代碼:我嘗試使用 copy() 函數(shù)但沒有成功uvcomsSup = UVCEComsCtrl_SupportData()uvcomsAntSup = UVCEComsCtrl_SupportData()while 1:    try:                uvcomsSup = getUVComsSupport(OrigAddress, UVComsDestAddress)                    print(uvcomsSup)        print("________________________")        print(uvcomsAntSup)                       print(uvcomsSup is uvcomsAntSup)        if (uvcomsSup != uvcomsAntSup):            uvcomsAntSup = copy.copy(uvcomsSup)                                  logFile.addSupportData(str(uvcomsSup))           sleep(1)    except Exception as err:        print("Error inesperado:", sys.exc_info()[0])        print(err)當(dāng)我打印這兩個對象(我有一個eq方法和str方法)時,我看到了相同的值。我只是第一次進(jìn)入 if 條件。有什么幫助嗎?
查看完整描述

2 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗 獲得超6個贊

我無法運行你的代碼,所以我看不到全貌。


不過,我可以看到你正在返回淺拷貝的ucomsSup,它保留從而原來的對象修改它的引用。


嘗試改用深拷貝。


uvcomsSup = UVCEComsCtrl_SupportData()

uvcomsAntSup = UVCEComsCtrl_SupportData()


while 1:

    try:        

        uvcomsSup = getUVComsSupport(OrigAddress, UVComsDestAddress)            

        print(uvcomsSup)

        print("________________________")

        print(uvcomsAntSup)               

        print(uvcomsSup is uvcomsAntSup)

        if (uvcomsSup != uvcomsAntSup):

            uvcomsAntSup = copy.deepcopy(uvcomsSup) ## Create deep copy                 

            logFile.addSupportData(str(uvcomsSup))   

        sleep(1)

    except Exception as err:

        print("Error inesperado:", sys.exc_info()[0])

        print(err)


查看完整回答
反對 回復(fù) 2022-01-05
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗 獲得超7個贊

Python 文檔說:

copy(x) 返回 x 的淺拷貝。

淺拷貝構(gòu)造一個新的復(fù)合對象,然后(在可能的范圍內(nèi))向其中插入對原始對象中的對象的引用。

嘗試使用 copy.deepcopy(x) 代替。

uvcomsAntSup = copy.deepcopy(uvcomsSup)

copy.deepcopy(x) 返回 x 的深層副本。

深層復(fù)制構(gòu)造一個新的復(fù)合對象,然后遞歸地將原始對象中的對象的副本插入其中。

閱讀更多相關(guān)信息:https : //docs.python.org/3.7/library/copy.html


查看完整回答
反對 回復(fù) 2022-01-05
  • 2 回答
  • 0 關(guān)注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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