2016年7月25日 星期一

Python 隱藏物件的屬性

Python 隱藏屬性的方法
  • 將屬性元素隱藏的好處如下:
    • 外部程式只能使用公開的屬性,避免內部元素被濫用!
    • 限制程式設計師必須要遵守已制定的規範,避免開發過程混亂!
  • 可參考前一篇文章!
  • Python 隱藏屬性的基本格式:
    class 類別名稱():
        
        def 方法名稱(給定值名稱):
           self.__變數名稱 = 給定值名稱
             :
             :
    
    
快速測試:
  1. 修改 human.py 的內容:
    #vim human.py
    class Human():
    
      def __init__(self):
        self.__name = "I am a human"
    
      def showName(self):
        return self.__name
    
      def eat(self):
        print("eating food ...")
    
    
  2. 修改 asian.py 的內容:
    #vim asian.py
    from human import Human
    
    class Asian(Human):
       def __init__(self,name):
          super().__init__()
          self.__name = super().showName()+ "\n" + "I am a Asian!" + name
    
       def showName(self):
          return self.__name
    
       def eat(self):
          print("eating rise food ...")
    
    
  3. 修改 runprogram.py 的內容:
    #vim runprogram.py
    from asian import Asian
    from american import American
    
    peter = Asian("Peter")
    print(peter.showName())
    print(peter.__name)
    peter.eat()
    
    
  4. 執行程式:
    #python3 runprogram.py
    I am a human
    I am a Asian!Peter
    Traceback (most recent call last):
      File "runprogram.py", line 6, in 
        print(peter.__name)
    AttributeError: 'Asian' object has no attribute '__name'