日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python - 关于方法参数和字典更新(dict.update())方法

發布時間:2025/4/9 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python - 关于方法参数和字典更新(dict.update())方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初學Python,貽笑大方。

今天遇到一坑,涉及到字典(dict)作為參數傳入方法內時的操作,和更新字典內容兩方面內容。

首先第一點:

  我們來對比一下一組代碼:

  代碼A:

# 添加默認字段 def setInsertModel(opt_user_id, dic):# 默認字段元組common_dic = {'del_flg': consts.CommonFlg.COM_FLG_OFF.value,'creator_id': opt_user_id,'create_dt': DateUtils.getNow(),'updater_id': opt_user_id,'update_dt': DateUtils.getNow(),}# 添加默認字段dic.update(common_dic)

  代碼B:

# 添加默認字段 def setInsertModel(opt_user_id, **dic):# 默認字段元組common_dic = {'del_flg': consts.CommonFlg.COM_FLG_OFF.value,'creator_id': opt_user_id,'create_dt': DateUtils.getNow(),'updater_id': opt_user_id,'update_dt': DateUtils.getNow(),}# 添加默認字段dic.update(common_dic)

  僅僅是方法參數定義時加了雙星號(**,代表收集到的參數在方法中作為元組使用),但是結果不同。

  中間的代碼就不貼出來了,省的丟人。下面是model更新后的結果:

  

  第二條數據是代碼B執行后的結果,而第一條與第三條數據則是代碼A執行后的結果。這說明作為參數的dic,在代碼A中并沒有被修改。

  現在作為初學者簡單的認為是參數的作用域的問題,用雙星號定義的字典,僅僅作為收集參數用的形參,作用域僅在本方法內部,出了方法體就沒人認識這個dic的東西了;相反代碼B中的dic就是原字典的引用,我對這個字典進行操作后,會直接作用到這個字典中,所以代碼B會將默認的字段都添加到需要更新的字典中。如果說的不對,歡迎指教。

那么接下來第二點:

  這個就真的比較小兒科了,還是來比較一段代碼:

  代碼C:

# 添加默認字段 def setInsertModel(opt_user_id, dic):# 默認字段元組common_dic = {'del_flg': consts.CommonFlg.COM_FLG_OFF.value,'creator_id': opt_user_id,'create_dt': DateUtils.getNow(),'updater_id': opt_user_id,'update_dt': DateUtils.getNow(),}# 添加默認字段dic.update(common_dic)

  代碼D:

# 添加默認字段 def setInsertModel(opt_user_id, dic):# 默認字段元組common_dic = {'del_flg': consts.CommonFlg.COM_FLG_OFF.value,'creator_id': opt_user_id,'create_dt': DateUtils.getNow(),'updater_id': opt_user_id,'update_dt': DateUtils.getNow(),}# 添加默認字段dic = dic.update(common_dic)return dic

  代碼D在執行插入操作時直接報錯了,TypeError:‘NoneType’。其實道理非常簡單,因為dict.update()方法沒有返回值,dic被賦了NoneType,當然報錯了。

?

轉載于:https://www.cnblogs.com/cheminea/p/8583244.html

總結

以上是生活随笔為你收集整理的Python - 关于方法参数和字典更新(dict.update())方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。