class Hand(t.Turtle):
def __init__(self,length):
super().__init__()
self.shape('arrow')
self.shapesize(0.5,length)
self.tick()
def tick(self):
time0=datetime.datetime.today()
s=time0.second
angle=90-s*6
self.seth(angle)
t.ontimer(self.tick,1000)
这是小编创造的指针类,目前实例化后是秒针,小编还要继续编程。
在方法中增加if判断
def tick(self):
time0=datetime.datetime.today()
s=time0.second
if self.length==30:
angle=90-6*s
elif self.length==22:
angle=分针角度
else:
angle=时针角度
self.seth(angle)
t.ontimer(self.tick,1000)
在tick方法中,对length进行判断,再对不同类型的指针设置不同的旋转角度就可以了。
length这个参数是从初始化方法中赋值的,在tick方法中并没有length这个属性。
增加初始化属性呀!就是这么简单!
class Hand(t.Turtle):
def __init__(self,length=15):
super().__init__(self)
self.shape('arrow')
self.shapesize(0.5,length)
self.length=length ←就是他
self.tick()
在初始化方法中,新增一个属性,保存length的参数,这样才能在tick的方法中使用这个属性。
在方法中调用属性
对应的,在tick方法中,在length前加上self,就表示这是在调用对象自己的属性
分针角度和时针角度计算一下
时针与分针的运动
获取时间
def tick(self):
time0=datetime.datetime.today()
s=time0.second
m=time0.minute
h=time0.hour-12
因为时24小时制的,但表盘只有12个刻度,所有要减去12。现在既然秒可以从时间获取,那时和分当然也可以了。
设置分钟角度
和秒钟相似,分钟每转一圈60分钟,所有每分钟运转的角度也是6度。所有我们也可以像秒针一样,通过分钟数计算得到分针角度:90 - 分钟数 *(乘) 6
分针角度算式
def tick(self):
time0=datetime.datetime.today()
s=time0.second
m=time0.minute
h=time0.hour - 12
if self.length==30:
angle=90-6*s
elif self.length==22:
angle=90-6*m
else:
angle=时针角度
<