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

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

將元素追加到雙嵌入式字典將添加到所有父元素

將元素追加到雙嵌入式字典將添加到所有父元素

動(dòng)漫人物 2022-09-27 10:51:33
我對(duì)一個(gè)我無(wú)法弄清楚的問(wèn)題有點(diǎn)難倒,我覺(jué)得這應(yīng)該是一個(gè)微不足道的問(wèn)題。我有一個(gè)班級(jí)預(yù)算的元素預(yù)算。在此類(lèi)中,它有一個(gè)包含 Section 類(lèi)對(duì)象的字典節(jié)。在章節(jié)類(lèi)中,我有另一個(gè)字典,稱(chēng)為津貼類(lèi)對(duì)象的津貼。在“津貼”類(lèi)中,我有一個(gè)名為“操作”的列表,我想向其添加操作類(lèi)對(duì)象。層次結(jié)構(gòu)如下,對(duì)于那些更直觀的:預(yù)算 -> 款次 -> 津貼 -> 業(yè)務(wù)我想將操作類(lèi)對(duì)象附加到節(jié)和允許的特定組合(使用的變量name_of_section和name_of_operation。我的第一次嘗試是budget.sections[name_of_section].allowances[name_of_allowance].operations.append(Operation(name=name,                                                                                           cost=cost, date=date)由于某種未知的原因,它將操作對(duì)象添加到我的所有部分和允許元素,我無(wú)法弄清楚原因。我嘗試將方法add_operation()添加到 Section,該方法使用add_operation()到“津貼”的方法,但它只是不斷將每個(gè)操作添加到我的所有節(jié)和津貼元素中。最奇怪的是,我在津貼中還有一個(gè)列表關(guān)鍵字,它意味著一個(gè)字符串列表。我稍后以完全相同的方式附加一個(gè)字符串:budget.sections[name_of_section].allowances[name_of_allowance].keywords.append(keyword_str)它只會(huì)增加適當(dāng)?shù)牟糠趾徒蛸N。有沒(méi)有人知道為什么當(dāng)我嘗試將我的操作對(duì)象附加到列表中時(shí),它會(huì)添加到所有列表中,盡管當(dāng)我附加到str列表時(shí),它只會(huì)添加到單個(gè)和適當(dāng)?shù)牧斜碇??這是我的預(yù)算初始化和添加津貼的方法,該津貼根據(jù)需要添加一個(gè)部分。def __init__(self):    self.sections = {"Income": Section(name = "Income")}    self.total_balance = 0.0    self.unsorted_operations = []def add_allowance(self, name, section, projected_cost = 0.0, frequency = "monthly"):    if section in self.sections:        self.sections[section].new_allowance(name=name, section=section, projected_cost = projected_cost,                                             frequency = frequency)    else:        self.add_section(name = section)        self.sections[section].new_allowance(name=name, section=section, projected_cost=projected_cost,                                             frequency=frequency)我的 Section 類(lèi)以這種方式初始化,_new_allowance()_ 方法是:def __init__(self, name):    self.name = name    self.allowances = dict()    self.calculate_projected_cost()def new_allowance(self, name, section, projected_cost, frequency = 'monthly'):    self.allowances[name] = Allowance(name = name, section = section, projected_cost = projected_cost,                                      frequency = frequency)    self.calculate_projected_cost()
查看完整描述

2 回答

?
明月笑刀無(wú)情

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

事實(shí)證明,這可能是我保存的JSON文件的問(wèn)題,我從中加載了我的對(duì)象。正如J_H建議使用的,這些元素是相同的。這個(gè)提示在調(diào)試我的問(wèn)題時(shí)非常有用。budgetid(x)

在沒(méi)有對(duì)代碼進(jìn)行任何更改的情況下,并且從頭開(kāi)始而不是加載我的JSON文件,我沒(méi)有再次看到這種行為。我保存了它,停止了程序,再次運(yùn)行它并加載了我新保存的文件,現(xiàn)在,它正在按預(yù)期運(yùn)行。


查看完整回答
反對(duì) 回復(fù) 2022-09-27
?
墨色風(fēng)雨

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

我不知道你是如何創(chuàng)建數(shù)據(jù)結(jié)構(gòu)的,因?yàn)槟銢](méi)有發(fā)布那個(gè)代碼。


但是你的癥狀清楚地表明你做了這樣的事情:


>>> a = ['apple']

>>> fruit = [a, a, a]

>>> a.append('banana')

>>> fruit

[['apple', 'banana'], ['apple', 'banana'], ['apple', 'banana']]

也就是說(shuō),您有一個(gè)內(nèi)部可變?nèi)萜鳎ɑ蝾?lèi)似對(duì)象),并且您的外部容器具有對(duì)該單個(gè)內(nèi)部容器的多個(gè)引用。假設(shè)您顯示外部容器。現(xiàn)在,您更改了內(nèi)部容器(如上所示),這將影響多個(gè)位置的顯示輸出,因?yàn)槟卸鄠€(gè)對(duì)更改內(nèi)容的引用。a


如果您對(duì)細(xì)節(jié)感到好奇,可以使用例如 以查看元素是相同還是不同。python函數(shù)大致相當(dāng)于一個(gè)C程序,詢問(wèn)在哪個(gè)地址進(jìn)行存儲(chǔ)以進(jìn)行分配。print(list(map(id, fruit)))id(x)x


查看完整回答
反對(duì) 回復(fù) 2022-09-27
  • 2 回答
  • 0 關(guān)注
  • 100 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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