亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

字典未為變量分配值

字典未為變量分配值

慕娘9325324 2021-03-17 13:14:21
我正在嘗試將字典中的值分配給變量,但變量保持不變。該值是另一個字典。我用來生成字典的代碼可以在這里找到:http : //pastebin.com/Q2Hc8Ktp我自己編寫了它,并對其進行了測試,沒有出現任何問題。這是我嘗試從字典中復制字典的代碼片段。_classes = {}def populateClasses():    print "Classes Exist"    cp = Preferences(''.join([resource_path,"resources.ini"]))    print cp    _classes = cp.getPreferences()['Classes']populateClasses()print _classes當我打印出cp時,它顯示正確的數據,但是當我嘗試打印_classes時,它僅顯示{}注意:從函數內部打印_classes可以正常工作,但不能從函數外部打印。_classes在全局范圍內定義
查看完整描述

2 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

如果要更改全局變量的值,則_classes需要使用global:


def populateClasses():

    global _classes   # <<<<<< THIS

    print "Classes Exist"

    cp = Preferences(''.join([resource_path,"resources.ini"]))

    print cp

    _classes = cp.getPreferences()['Classes']

否則,您的方法將創建一個單獨的局部變量,也稱為_classes。方法返回后,此變量將超出范圍。


查看完整回答
反對 回復 2021-03-23
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

相反global,您可能會使用_classes.update(cp.getPreferences()['Classes'])。

全局變量的規則是,global如果您對該關鍵字進行寫操作,則需要該關鍵字,但是如果您只是訪問該變量(即使該訪問正在使狀態發生變化),則不需要該關鍵字。這就是為什么我上面的建議不需要global聲明,而原始代碼則需要這樣做。當您“將列表分配給兩個變量”并且不需要時,也可能發生這種情況global


查看完整回答
反對 回復 2021-03-23
  • 2 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號