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ǔ)充說明
對于__開頭的屬性和方法如果派生類一定要訪問,使用單下劃線+基類名+雙下劃線開頭的屬性和方法的形式,
且雙下劃線開頭的屬性和方法后面最多只能以一個(gè)單下劃線結(jié)束,否則也無法訪問。
class BaseCls:
def __init__(self, name, age, nick_name):
self.name = name
self.__nick_name_ = nick_name # __nick_name后面最多以一個(gè)_結(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中單下劃線(_)和雙下劃線(__)的特殊用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
C++與Python混合編程實(shí)戰(zhàn)(附詳細(xì)示例)
這篇文章主要介紹了C++與Python混合編程的相關(guān)資料,通過將 Python 與 C/C++ 混合編程,可以有效提高關(guān)鍵任務(wù)的執(zhí)行效率,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-10-10
python使用in操作符時(shí)元組和數(shù)組的區(qū)別分析
有時(shí)候要判斷一個(gè)數(shù)是否在一個(gè)序列里面,這時(shí)就會(huì)用到in運(yùn)算符來判斷成員資格,如果條件為真時(shí),就會(huì)返回true,條件為假時(shí),返回一個(gè)flase。這樣的運(yùn)算符叫做布爾運(yùn)算符,其真值叫做布爾值。2015-05-05
python socket網(wǎng)絡(luò)編程步驟詳解(socket套接字使用)
這篇文章主要介紹了什么是套接字、PYTHON套接字模塊,提供一個(gè)簡單的python socket編程,大家參考使用2013-12-12
Vue的el-scrollbar實(shí)現(xiàn)自定義滾動(dòng)
本篇文章給大家分享了Vue的el-scrollbar實(shí)現(xiàn)自定義滾動(dòng)實(shí)現(xiàn)的過程和實(shí)例代碼,對此有需要的朋友可以參考下。2018-05-05
Python實(shí)現(xiàn)將多個(gè)文件的名稱或后綴名由大寫改為小寫
這篇文章主要介紹了如何基于Python語言實(shí)現(xiàn)將多個(gè)文件的名稱或后綴名由大寫字母修改為小寫,文中的示例代碼講解詳細(xì),感興趣的可以了解下2023-09-09
解決Python出現(xiàn)_warn_unsafe_extraction問題的方法
這篇文章主要為大家詳細(xì)介紹了解決Python出現(xiàn)'_warn_unsafe_extraction'問題的方法,感興趣的小伙伴們可以參考一下2016-03-03

