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