Python时钟增量
我已经创建了一个应该在终端上运行的时钟程序。但每当我运行它时,它总是以每秒1的速度递增秒、分和小时 在秒数为60之前,它只能每秒增加秒数1,然后将分钟数增加1,以此类推 我不知道为什么它会输出1:1:1然后2:2:2然后3:3:3等等Python时钟增量,python,Python,我已经创建了一个应该在终端上运行的时钟程序。但每当我运行它时,它总是以每秒1的速度递增秒、分和小时 在秒数为60之前,它只能每秒增加秒数1,然后将分钟数增加1,以此类推 我不知道为什么它会输出1:1:1然后2:2:2然后3:3:3等等 # Clock import time import sys class Counter: count = 0 name = "" def __init__(self, name): self.name = name
# Clock
import time
import sys
class Counter:
count = 0
name = ""
def __init__(self, name):
self.name = name
def Increment(self):
Counter.count += 1
def Reset(self):
Counter.count = 0
class Clock:
seconds = Counter("Seconds")
minutes = Counter("Minutes")
hours = Counter("Hours")
def Tick(self):
time.sleep(1)
Clock.seconds.Increment()
if Clock.seconds.count >= 60:
Clock.seconds.Reset()
Clock.minutes.Increment()
if Clock.minutes.count >= 60:
Clock.minutes.Reset()
Clock.hours.Increment()
if Clock.hours.count >= 12:
Clock.ResetClock()
def ResetClock(self):
Clock.seconds.Reset()
Clock.minutes.Reset()
Clock.hours.Reset()
def SetClock(self, seconds, minutes, hours):
self.hours = hours
self.minutes = minutes
self.seconds = seconds
def ReadClock(self):
sys.stdout.writelines(" \r Current Time: %d:%d:%d" % (Clock.hours.count, Clock.minutes.count, Clock.seconds.count))
clock = Clock()
while True:
clock.Tick()
clock.ReadClock()
在
计数器中有类级变量,而不是实例级变量。这意味着变量count
在类之间共享,这就是为什么每次调用Increment
时它都会递增
您应该让count
成为实例的一部分,而不是类的一部分:
class Counter:
def __init__(self, name):
self.name = name
self.count = 0
def Increment(self):
self.count += 1
def Reset(self):
self.count = 0
在计数器中有类级变量,而不是实例级变量。这意味着变量count
在类之间共享,这就是为什么每次调用Increment
时它都会递增
您应该让count
成为实例的一部分,而不是类的一部分:
class Counter:
def __init__(self, name):
self.name = name
self.count = 0
def Increment(self):
self.count += 1
def Reset(self):
self.count = 0
杰出的非常感谢。第一天使用python,现在我越来越理解它了,谢谢!如果允许的话,我会在6分钟内接受你的回答。太好了!非常感谢。第一天使用python,现在我越来越理解它了,谢谢!如果允许的话,我会在6分钟内接受你的回答。