1. 程式人生 > 程式設計 >python中單下劃線(_)和雙下劃線(__)的特殊用法

python中單下劃線(_)和雙下劃線(__)的特殊用法

函式使用單下劃線_開頭

  使用單下劃線(_)開頭的函式_func不能被模組外部以: from module import *形式匯入。

  但可以用:from module import _func形式單獨匯入。

類屬性和類方法使用單下劃線_開頭

  _開頭為保護型別的屬性和方法,僅允許類內部和子類訪問,類例項無法訪問此屬性和方法。

類屬性和類方法使用雙下劃線__開頭

  __開頭為私有型別屬性和方法,僅允許類內部訪問,類例項和派生類均不能訪問此屬性和方法。

  所以雙劃線比單劃線許可權更嚴格。

補充說明

對於__開頭的屬性和方法如果派生類一定要訪問,使用單下劃線+基類名+雙下劃線開頭的屬性和方法的形式,

   且雙下劃線開頭的屬性和方法後面最多隻能以一個單下劃線結束,否則也無法訪問。

class BaseCls:
  def __init__(self,name,age,nick_name):
    self.name = name
    self.__nick_name_ = nick_name # __nick_name後面最多以一個_結束,否則通過基類名混淆的方式也無法訪問了。
    self.age = age


class SubCls(BaseCls):
  def __init__(self,addr,nick_name):
    super().__init__(name,nick_name)
    self.addr = addr
    self.a_nick_name = self._BaseCls__nick_name_

總結

以上所述是小編給大家介紹的python中單下劃線(_)和雙下劃線(__)的特殊用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!