Я запускаю симуляцию для концерта, в которой я генерирую количество времени, которое каждый поклонник проводит перед сценой, прежде чем заняться чем-то другим (купить еду, напитки или пойти в туалет). Однако время, которое я установил для них, не является временем, которое используется в обратном отсчете, пока они не уйдут, чтобы заняться чем-то другим.
Во время обратного отсчета я получил сообщение о том, что не могу использовать операнд +=
для NoneType и int, и после изменения способа назначения пребывания я понял, что многие времена пребывания были изменены.
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()
даже один раз, потому что время пребывания меняется, и обычно около начала 190-х годов значение меняется на NoneType