亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python里運用私有屬性和方法總結

系統 1767 0

如何在PYTHON里運用私有屬性和方法

            
class File:

  def __init__(self, name):

    self.name = name

    self.code = "ABCDEF"

    

file_A = File("file_A")

          

#假設我們有一個類,叫做文件類,設置一個對象file_A。

python里運用私有屬性和方法總結_第1張圖片

file_A.code

#如果直接調用屬性,是可以看到屬性里面有什么,但是如果這是個機密的密碼不能公布,是不能這么處理的。

python里運用私有屬性和方法總結_第2張圖片

            
class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.code)


          

#如果不想密碼公布,可以對屬性的名稱加上__,但是這里出錯了。

python里運用私有屬性和方法總結_第3張圖片

            
class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.__code)


          

#很多人以為是因為外部的名稱打少了__,但是這里依舊出錯了,那是因為這是私有的屬性。

python里運用私有屬性和方法總結_第4張圖片

            
class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.open()


          

#除了屬性,方法也能私有嗎?答案是可以的。

python里運用私有屬性和方法總結_第5張圖片

            
class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.__open()


          

#私有方法以后,看出來和私有屬性的返回結果是一致的。

python里運用私有屬性和方法總結_第6張圖片

            
class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

print(file_A._File__code)

file_A._File__open()


          

#在PYTHON里面如果在方法和屬性那里加上_類名是可以看到私有的屬性和方法的。

python里運用私有屬性和方法總結_第7張圖片

知識點擴展:

python默認的成員函數和成員變量都是公開的,python 私有屬性和方法沒有類似別的語言的public,private等關鍵詞來修飾。 在python中定義私有變量只需要在變量名或函數名前加上 "__"兩個下劃線,那么這個函數或變量就會為私有的了。 在內部,python使用一種 name mangling 技術,將 __membername替換成 _classname__membername,所以你在外部使用原來的私有成員的名字時,會提示找不到。 比如:

            
class Person:

def __init__(self):
self.__name = 'haha'#私有屬性
self.age = 22

def __get_name(self):##私有方法
return self.__name

def get_age(self):
return self.age

person = Person()
print person.get_age()
print person.__get_name()
運行結果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'


          

我們這里定義的__name是私有屬性,__get_name()是私有方法。如果直接訪問的話,會提示找不到相關的屬性或者方法,但是如果你真要訪問私 有的相關數據的話, 也是可以訪問的,嚴格地說,私有方法在它們的類外是可以訪問的,只是不容易 處理。在 Python 中沒有什么是真正私有的;在內部,私有方法和屬性的名字被忽然改變和恢復,以致于使得它們看上去用它們給定的名字是無法使用的


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 第一福利在线视频 | 久久青草18免费观看网站 | 六月色婷婷 | www.亚洲视频.com | 国产级a爱做片免费观看 | 伊人国产在线 | 久久青草免费91线频观看不卡 | 免费观看四虎精品成人 | 天天操精品视频 | 黄色片免费在线观看视频 | 中文字幕在线精品不卡 | 免看一级a毛片一片成人不卡 | 日韩视频一区二区在线观看 | 日本不卡一区二区三区 最新 | 国产系列欧美系列日韩系列在线 | 日本视频中文字幕 | 欧美日韩久久 | 精品一区二区三区的国产在线观看 | 国产一级高清视频 | 最近中文国语字幕在线播放视频 | 久久激情视频 | 天天综合在线视频 | 国产欧美日韩成人 | 中文字幕一区二区三区 精品 | 国产激情久久久久影 | 国产网红福利视频网站 | 欧美男女视频 | 国产一区中文字幕在线观看 | 99国产精品高清一区二区二区 | 久久天天躁狠狠躁夜夜2020一 | 手机看片国产福利 | 久久精品观看 | 亚洲一区二区三区精品国产 | 奇米第四色在线视频 | 国产成人小视频 | 国产爱视频 | 国产成人综合自拍 | 国产成人精品.一二区 | 欧美国产中文 | 精品精品国产自在久久高清 | 91在线丨亚洲 |