欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python隱藏類中屬性的3種實(shí)現(xiàn)方法

 更新時(shí)間:2019年12月19日 17:12:28   作者:人生與戲  
今天小編就為大家分享一篇python隱藏類中屬性的3種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

方法一:

效果圖一:

代碼一:

# 定義一個(gè)矩形的類
class Rectangle:
  # 定義初始化方法
  def __init__(self,width,height):
    self.hidden_width = width
    self.hidden_height = height

  # 定義獲取width、height的方法
  def get_width(self):
    return self.hidden_width

  def get_height(self):
    return self.hidden_height

  # 定義修改width、height的方法
  def set_width(self,width):
    self.hidden_width = width

  def set_height(self,height):
    self.hidden_height = height

  # 定義一個(gè)獲取矩形面積的方法
  def get_area(self):
    return self.hidden_width * self.hidden_height

# 創(chuàng)建Rectangle的實(shí)例
r_one = Rectangle(3,4)
# 輸出打印 r_one的widh
print(r_one.get_width())  # 輸出 3
# 輸出打印 r_one的area
print(r_one.get_area())  # 輸出 12

# 改變width
r_one.set_width(5)
print(r_one.get_area())   # 輸出 20

方法二:

效果圖二:

代碼二:

# 可以為對(duì)象的屬性使用雙下劃線開頭,__xxx
# 雙下劃線開頭的屬性,是對(duì)象的隱藏屬性,隱藏屬性只能在類的內(nèi)部訪問,無法通過對(duì)象訪問
# 其實(shí)隱藏屬性只不過是Python自動(dòng)為屬性改了一個(gè)名字
#  實(shí)際上是將名字修改為了,_類名__屬性名 比如 __name -> _Person__name
class Person:
  def __init__(self,name):
    self.__name = name

  def get_name(self):
    return self.__name

  def set_name(self , name):
    self.__name = name    

p = Person('孫悟空')

# print(p.__name) # 報(bào)錯(cuò):AttributeError: 'Person' object has no attribute '__name'
         #__開頭的屬性是隱藏屬性,無法通過對(duì)象訪問
p.__name = '豬八戒' # 這個(gè)設(shè)置無效,不會(huì)報(bào)錯(cuò)
print(p._Person__name)
p._Person__name = '沙和尚'

print(p.get_name())

方法三: 常用的

效果圖三:

代碼三:

# 使用__開頭的屬性,實(shí)際上依然可以在外部訪問,所以這種方式一般不用
#  一般會(huì)將一些私有屬性(不希望被外部訪問的屬性)以_開頭
#  一般情況下,使用_開頭的屬性都是私有屬性,沒有特殊需要不要修改私有屬性
class Person:
  def __init__(self,name):
    self._name = name

  def get_name(self):
    return self._name

  def set_name(self,name):
    self._name = name

p = Person('牛一')

print(p._name)

以上這篇python隱藏類中屬性的3種實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論