Python:以時鐘類來描述類的構造器(init)隱藏屬性,公開屬性

"""
面向對象有三大支柱:封裝、繼承和多態。
封裝:隱藏實現細節,只向外界提供接口
類中定義的方法就是把數據和對數據的操作封裝起來
創建之後,給對象發消息(調用對象的方法)就可以執行方法中的代碼
也就是說我們只需要知道方法名和傳入什麼參數
無需知道方法內部實現細節
"""
import time


# 定義一個類描述時鐘
class Clock(object):
    def __init__(self, hour=0, minute=0, second=0):
        """
        構造器
        :param hour:
        :param minute:
        :param second:
        """
        # 隱藏屬性(不可訪問)
        self.__hour = hour
        self.__minute = minute
        self.__second = second
        # 可訪問
        self.can_see = '你能看到我!'

    # 走字
    def run(self):

        self.__second += 1
        if self.__second == 60:
            self.__second = 0
            self.__minute += 1
        if self.__minute == 60:
            self.__minute = 0
            self.__hour += 1
        if self.__hour == 24:
            self.__hour = 0

    # 顯示時間
    def str_time(self):
        return '%2d:%2d:%2d' % (self.__hour, self.__minute, self.__second)


def main():
    clock = Clock(1, 1, 1)
    # print(clock.__hour) 'Clock' object has no attribute '__hour' 隱藏了
    print(clock.can_see)
    while True:
        print(clock.str_time())
        time.sleep(1)
        clock.run()


if __name__ == '__main__':
    main()

 

效果如圖:

 

發佈了79 篇原創文章 · 獲贊 64 · 訪問量 8215
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章