我正在为一场音乐会运行一个模拟,在这个模拟中,我生成每个歌迷在做其他事情(买食物、饮料或上厕所)之前在舞台前花费的时间量。然而,我为他们设定的时间不是倒计时的时间,直到他们离开去做别的事情。你知道吗
在倒计时时,我收到一个错误,说我不能将操作数+=
用于NoneType和int,在更改了stay的分配方式之后,我意识到许多停留时间都被更改了。你知道吗
Fan
类代码
class Fan:
stay = 0
def __init__(self, gender):
self.gender = gender
这段代码创建一个风扇,计算它们在舞台前停留的时间,并将它们添加到舞台前部区域
for i in range(200):
x = random.randint(1,10)
if x <= 7:
f = Fan("f")
f.stay = stage.calcstay()
stage.addfan(f)
print(i,": ",f.stay)
else:
f = Fan("m")
f.stay = stage.calcstay()
stage.addfan(f)
print(i,": ",f.stay)
这是功能倒计时的时候,球迷留在舞台前。(字面意思是下一位代码)
for x in range(360):
stagefunction()
这是stagefunction()
方法:
def stagefunction():
if len(stage.fans) > 0:
for i in range(len(stage.fans)):
print(i,": ",stage.fans[i].stay)
stage.fans[i].stay += -1
if stage.fans[i].stay <= 0:
movefromstage(i)
stage.TTS += 1
return
我预计stagefunction()
每次都会被多次调用,从而减少剩余的时间,直到舞台前部区域的每个风扇都减少1,并移除那些不应该再呆下去的风扇。然而,我甚至一次也不能通过stagefunction()
,因为停留时间会发生变化,通常在19世纪初,a值会变为NoneType
stay
是class variable
,不是instance variable
。这意味着stay
的值对类的所有实例都是通用的,如果要更改它,必须从类而不是实例中更改它。你知道吗要定义
instance variable
,请将其放入__init__()
函数中相关问题 更多 >
编程相关推荐