Python更改变量的值
我正在为一场音乐会进行模拟,在模拟中,我生成每个歌迷在做其他事情(买食物、饮料或上厕所)之前在舞台前花费的时间量。然而,我为他们设定的时间不是倒计时的时间,直到他们离开去做其他事情 在进行倒计时时,我收到一个错误,说我不能将操作数Python更改变量的值,python,simulation,Python,Simulation,我正在为一场音乐会进行模拟,在模拟中,我生成每个歌迷在做其他事情(买食物、饮料或上厕所)之前在舞台前花费的时间量。然而,我为他们设定的时间不是倒计时的时间,直到他们离开去做其他事情 在进行倒计时时,我收到一个错误,说我不能将操作数+=用于非类型和int,在更改了分配停留时间的方式后,我意识到许多停留时间都已更改 风扇类别代码 class Fan: stay = 0 def __init__(self, gender): self.gender = gender
+=
用于非类型和int,在更改了分配停留时间的方式后,我意识到许多停留时间都已更改
风扇
类别代码
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)
这是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
def stagefunction():
如果len(舞台风扇)>0:
对于范围内的i(len(stage.fans)):
打印(i,“:”,stage.fans[i].停留)
舞台。粉丝[i]。停留+=-1
if stage.fans[i].staystay
是类变量
,而不是实例变量
。这意味着stay
的值对类的所有实例都是通用的,如果要更改它,必须从类而不是实例中更改它
若要定义一个实例变量
,请将其放入\uuuu init\uuuu()
函数中能否显示风扇
类代码?这需要一个最小、完整且可验证的示例。@alec935我已添加it@OmariLawrence非常感谢。我补充了一个答案。
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