对于我的学校作业,我们必须编写一个程序来模拟交通信号灯。我有程序工作唯一的问题是代码有点乱,因为我不知道如何正确使用类。文档让我感到困惑(有点像菜鸟)。
所以我只是复制了我想要多次更改变量的函数并手动更改了变量。我知道可以用类做这个,只需用正确的变量创建这个类的实例,但我似乎可以让它工作。这是我想要实现的“伪代码”中的一个小例子。
此代码是一个计时器,用于指示交通信号灯亮起的时间。我想创建一个可以接受一边(left
,right
,front
,back
)的类并打印此字符串,这样我就不必复制代码并手动编写进入一边。但我可以用其中一方制作一个实例。
import time
class trafficlight_timer:
def __init__(self, side1):
self.side = side1
def trafficlight(self, side1):
s = 0
b = 5
t_max = 10
print self.side, "is green"
if b > t_max:
b = t_max
while s <= 60:
time.sleep(1)
s += 1
if s == b:
print self.side, "is red"
print self.side, "was green for %d seconds." % s
print ""
s = 65
trafficlight()
instance_left = trafficlight_timer('left')
如果有人能指出我应该怎么做,我将非常感激。非常感谢提前!
答案 0 :(得分:2)
你有什么问题?我没有尝试运行它,但它看起来对我很好,除了你通常不会从类体内调用trafficlight()
(甚至可能不是合法的语法,我不确定)。
import time
class trafficlight_timer:
def __init__(self, side1):
self.side = side1
def trafficlight(self):
s = 0
b = 5
t_max = 10
print self.side, "is green"
if b > t_max:
b = t_max
while s <= 60:
time.sleep(1)
s += 1
if s == b:
print self.side, "is red"
print self.side, "was green for %d seconds." % s
print ""
s = 65
instance_left = trafficlight_timer('left')
instance_left.trafficlight()
我所做的唯一更改是从类正文中删除trafficlight()
,从side1
函数中删除冗余且未使用的trafficlight
参数,然后在trafficlight()
上调用instance_left
left is green
left is red
left was green for 5 seconds.
个实例。输出如下:
{{1}}
如果这不是您想要的,请更详细地描述您对输出的期望以及您获得的不良输出。