Python时钟增量

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

我已经创建了一个应该在终端上运行的时钟程序。但每当我运行它时,它总是以每秒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

    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分钟内接受你的回答。