python類中有屬性和方法,外部代碼可以通過實例直接訪問和修改。
如果您需要防止外部訪問內(nèi)部屬性,請在屬性變量前面添加__2下劃線。
在python中,如果一個實例的變量名以__2花錢開始,就意味著它是私有變量:只有內(nèi)部可以訪問,外部不能通過類或?qū)嵗苯釉L問。
代碼:
雖然內(nèi)部私有屬性不能從外部訪問,但它可以通過類中的方法間接訪問和修改
類內(nèi)部方法getname和setname:
python中有兩個有趣的現(xiàn)象,即外部變量掩蓋了類中的變量。
從實例訪問類屬性時必須小心。
像普通的python變量一樣,對實例屬性的任何賦值都會創(chuàng)建一個實例屬性(如果它不存在的話)并賦值。
但是如果類屬性中有一個同名的屬性,就會產(chǎn)生上面提到的有趣的副作用。
這種情況在python3.x中仍然存在
下面的代碼:
為什么下列dict類型會報告錯誤??
原因是:
Python是c寫的cpython。
C語言中沒有字符串的概念:C被稱為字符數(shù)組,存儲在內(nèi)存中,不可修改。修改字符數(shù)組的任何行為都將創(chuàng)建一個新的字符數(shù)組,而不會影響原始的字符數(shù)組。
而Dict存儲在內(nèi)存中,內(nèi)存是一系列不連續(xù)的內(nèi)存空,可以在原來的基礎(chǔ)上修改,所以del f.x會在第二個例子中報錯。
*聲明:推送的內(nèi)容和圖片來自互聯(lián)網(wǎng),部分內(nèi)容會有改動,版權(quán)歸原作者所有。如果來源信息有誤或侵犯權(quán)益,請聯(lián)系我們進行刪除或授權(quán)。
-結(jié)束-
1.《python類 python的類訪問控制》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《python類 python的類訪問控制》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/jiaoyu/764963.html