中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-29 05:10:41 來源:腳本之家 閱讀:122 作者:燃燒的猛男1 欄目:開發技術

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

class File:

  def __init__(self, name):

    self.name = name

    self.code = "ABCDEF"

    

file_A = File("file_A")

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

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

file_A.code

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

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

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.code)

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

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

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.__code)

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

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

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里運用私有屬性和方法總結

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里運用私有屬性和方法總結

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里運用私有屬性和方法總結

知識點擴展:

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 中沒有什么是真正私有的;在內部,私有方法和屬性的名字被忽然改變和恢復,以致于使得它們看上去用它們給定的名字是無法使用的

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰州市| 阿拉善左旗| 石狮市| 二连浩特市| 运城市| 杭锦旗| 舞钢市| 柘城县| 彭阳县| 青河县| 永吉县| 志丹县| 清镇市| 合作市| 赤壁市| 锡林郭勒盟| 湟源县| 宝清县| 苍梧县| 柳河县| 蓬溪县| 阿拉尔市| 轮台县| 许昌县| 昌黎县| 惠东县| 泽库县| 吉木乃县| 乌海市| 玉环县| 炎陵县| 碌曲县| 河北省| 满城县| 洞头县| 保康县| 阳信县| 宁德市| 峨山| 萨嘎县| 沙洋县|