python中單下劃線(_)和雙下劃線(__)的特殊用法
函數(shù)使用單下劃線_開頭
使用單下劃線(_)開頭的函數(shù)_func不能被模塊外部以: from module import *形式導(dǎo)入。
但可以用:from module import _func形式單獨(dú)導(dǎo)入。
類屬性和類方法使用單下劃線_開頭
_開頭為保護(hù)類型的屬性和方法,僅允許類內(nèi)部和子類訪問,類實(shí)例無法訪問此屬性和方法。
類屬性和類方法使用雙下劃線__開頭
__開頭為私有類型屬性和方法,僅允許類內(nèi)部訪問,類實(shí)例和派生類均不能訪問此屬性和方法。
所以雙劃線比單劃線權(quán)限更嚴(yán)格。
補(bǔ)充說明
對于__開頭的屬性和方法如果派生類一定要訪問,使用單下劃線+基類名+雙下劃線開頭的屬性和方法的形式,
且雙下劃線開頭的屬性和方法后面最多只能以一個單下劃線結(jié)束,否則也無法訪問。
class BaseCls:
def __init__(self, name, age, nick_name):
self.name = name
self.__nick_name_ = nick_name # __nick_name后面最多以一個_結(jié)束,否則通過基類名混淆的方式也無法訪問了。
self.age = age
class SubCls(BaseCls):
def __init__(self, name, age, addr, nick_name):
super().__init__(name, age, nick_name)
self.addr = addr
self.a_nick_name = self._BaseCls__nick_name_
總結(jié)
以上所述是小編給大家介紹的python中單下劃線(_)和雙下劃線(__)的特殊用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
深入學(xué)習(xí)Python可變與不可變對象操作實(shí)例
Python中的數(shù)據(jù)類型可以分為可變對象和不可變對象,了解它們之間的區(qū)別對于編寫高效的Python代碼至關(guān)重要,本文將詳細(xì)介紹可變對象和不可變對象的概念,以及如何正確地使用它們來提高代碼的性能和可讀性2023-12-12
Python數(shù)學(xué)建模StatsModels統(tǒng)計(jì)回歸可視化示例詳解
圖形總是比數(shù)據(jù)更加醒目、直觀。解決統(tǒng)計(jì)回歸問題,無論在分析問題的過程中,還是在結(jié)果的呈現(xiàn)和發(fā)表時,都需要可視化工具的幫助和支持2021-10-10
python+opencv實(shí)現(xiàn)目標(biāo)跟蹤過程
這篇文章主要介紹了python+opencv實(shí)現(xiàn)目標(biāo)跟蹤過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
Python 使用PyQt5 完成選擇文件或目錄的對話框方法
今天小編就為大家分享一篇Python 使用PyQt5 完成選擇文件或目錄的對話框方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06

