CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: jackfrued/Python-100-Days
Path: blob/master/Day01-15/code/Day08/clock.py
Views: 729
1
"""
2
定义和使用时钟类
3
4
Version: 0.1
5
Author: 骆昊
6
Date: 2018-03-08
7
"""
8
9
import time
10
import os
11
12
13
class Clock(object):
14
15
# Python中的函数是没有重载的概念的
16
# 因为Python中函数的参数没有类型而且支持缺省参数和可变参数
17
# 用关键字参数让构造器可以传入任意多个参数来实现其他语言中的构造器重载
18
def __init__(self, **kw):
19
if 'hour' in kw and 'minute' in kw and 'second' in kw:
20
self._hour = kw['hour']
21
self._minute = kw['minute']
22
self._second = kw['second']
23
else:
24
tm = time.localtime(time.time())
25
self._hour = tm.tm_hour
26
self._minute = tm.tm_min
27
self._second = tm.tm_sec
28
29
def run(self):
30
self._second += 1
31
if self._second == 60:
32
self._second = 0
33
self._minute += 1
34
if self._minute == 60:
35
self._minute = 0
36
self._hour += 1
37
if self._hour == 24:
38
self._hour = 0
39
40
def show(self):
41
return '%02d:%02d:%02d' % (self._hour, self._minute, self._second)
42
43
44
if __name__ == '__main__':
45
# clock = Clock(hour=10, minute=5, second=58)
46
clock = Clock()
47
while True:
48
os.system('clear')
49
print(clock.show())
50
time.sleep(1)
51
clock.run()
52
53