我的老师告诉我们要制作Clock
课程,将hours
,minutes
和seconds
作为实例变量。然后,他给了我们一些不同的方法,以完成他给我们关于Clock
课程的目标。
我们的任务之一是实现一个名为print12()
的方法,用冒号打印出时间并将AM或PM追加到最后。他要求我们输入print12(myclock)
进行测试。我只有在输入myclock.print12()
时才有效。我不确定他是否犯了错误,或者我的代码执行错误。
这是我的代码:
class Clock:
def __init__(self, hour, minute, second):
self.hour = hour
self.minute = minute
self.second = second
def __str__(self):
return '%02d'%self.hour+':'+'%02d'%self.minute+':'+'%02d'%self.second
def print12(self):
if self.hour >= 13:
print(self,"P.M.")
else:
print(self,"A.M.")
def advance(self,s1):
if s1 == 'sec':
self.second += 1
elif s1 == 'min':
self.minute += 1
elif s1 == 'hour':
self.hour += 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
self.minute = 0
self.second = 0
这是他测试程序的主要代码:
myclock = Clock(15,59,5)
print(myclock)
print12(myclock)
myclock.advance('sec')
print(myclock)
myclock.advance('min')
print(myclock)
这对我不起作用,但如果我将print12(myclock)
替换为myclock.print12()
,则会有效。
答案 0 :(得分:2)
print12
函数仅在Clock
类中定义,因此应该在该类的实例上调用它。因此,myclock.print12
是正确的方法。
答案 1 :(得分:2)
仅根据您的报告,教师可能意味着以下两种情况之一:
1)创建Clock
方法,按照指示打印:
class Clock:
...
def print12(self):
if self.hour >= 13:
print(self,"P.M.")
else:
print(self,"A.M.")
# Usage:
myclock=Clock(...)
myclock.print12()
2)在Clock
之外创建一个函数,它以Clock
为参数并按指示打印:
class Clock:
...
def print12(clock):
if clock.hour >= 13:
print(clock,"P.M.")
else:
print(clock,"A.M.")
# Usage:
myclock = Clock(...)
print12(myclock)
你需要问你的导师他的意思。