在工作中遇到一個項目的陳年老bug,如圖:
站在用戶的角度思考問題,與客戶深入溝通,找到田陽網站設計與田陽網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:做網站、網站建設、企業官網、英文網站、手機端網站、網站推廣、申請域名、虛擬主機、企業郵箱。業務覆蓋田陽地區。
bug原因是這里本應該傳idx,結果傳成了id。
但是這里最有意思的地方來了。
從截圖可以看出,這個id并不是入參,也沒有定義過,那他直接用怎么不會報參數未定義的語法錯誤呢?按說函數應該執行不了直接報錯,但是實際上整個方法可以執行不會報錯。
排查import也沒有import id,也沒有定義全局變量。那么這個id變量沒有在任何地方定義,為什么可以直接使用呢,還不會報語法錯誤?
經過查閱資料才發現,id在這里其實 不是一個變量,而是一個函數!
查看官方文檔可以看到:
所以id()本身是python內置的一個函數,但是因為很少用到,所以很多人并不太清楚。
id() 函數返回對象的唯?標識符,標識符是?個整數。CPython 中 id() 函數?于獲取對象的內存地址。
語法
id([object])
參數說明:
object -- 對象。
返回值返回對象的內存地址。
用id()函數當a,b為2的時候id相同,而為2.5的時候不同,這種情況在string字符串的時候也會出現,即當很短的a,b賦值很短的字符串的時候,它們的id值相同,而很長的則不會。
id()函數用于獲取對象的內存地址。語法id([object]),返回對象的內存地址。對于字符串、整數等類型,變量的id是隨值的改變而改變的。
id(object)返回的是對象的“身份證號”,唯一且不變,但在不重合的生命周期里,可能會出現相同的id值。
網頁題目:python使用id函數的簡單介紹
網頁路徑:http://m.kartarina.com/article30/heiopo.html
成都網站建設公司_創新互聯,為您提供App開發、電子商務、Google、建站公司、云服務器、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯