天天看點

Python子產品是否支援自定義屬性使用雙下劃線開頭和結尾?

我們知道在Python中,變量名類似__xxx__的,也就是以雙下劃線開頭并且以雙下劃線結尾的變量和方法,是特殊變量,特殊變量是可以直接通路的,不是私有變量,是以,一般執行個體變量和類變量以及方法不能用__xxx__這樣的方式命名。大家可以參考​​《第7.8節 Python中隐秘的類封裝方法 》​​對Python中變量封裝的描述。

那麼如果自己寫的檔案中直接使用這樣的變量會怎麼樣呢?

經老猿驗證測試,Python并沒有限制這種命名規則的使用,還是可以正常定義和使用。如圖:

Python子產品是否支援自定義屬性使用雙下劃線開頭和結尾?

但老猿不建議大家這樣使用。

之是以引入這個問題,是老猿最近在進行子產品導入測試時對這種命名規則進行測試,由于自己粗心将__f__()調用寫成了__f()__結果報錯,才開始以為是特殊變量的原因,最後才發現是因為自己寫得有問題,隻好把寫好的部落格内容改成這樣釋出。

​​