如何使这段代码每次调用Python选择一个随机数?

时间:2015-05-16 18:02:28

标签: python python-3.x random

#randomly picks a monster for a random encounter        
class RanMob:
    #randint(1,2)
    roll=Dice.die(2)
    if roll ==1:
        mob=Goblin(Goblin.name,Goblin.hp,Goblin.thaco,Goblin.ac,Goblin.inventory)
    if roll ==2:
        mob=Orc(Orc.name,Orc.hp,Orc.thaco,Orc.ac,Orc.inventory)

while True:
    #pick a new random monster
    RanMob()
    #print the name of the random monster
    print(RanMob.mob.name)

当我运行此代码时,RanMob类第一次选择一个新的随机数,然后从不选择一个新的数字。每当我在主游戏循环中调用RanMob时,如何让它选择一个新的暴徒?

1 个答案:

答案 0 :(得分:3)

不要使用课程。类主体只执行一次(当Python遇到class语句时)。 RanMob()行在这里完全是冗余的,它不是执行Dice.die()调用的那一行。

使用功能并返回结果:

def ranmob():
    #randint(1,2)
    roll=Dice.die(2)
    if roll ==1:
        return Goblin(Goblin.name,Goblin.hp,Goblin.thaco,Goblin.ac,Goblin.inventory)
    if roll ==2:
        return Orc(Orc.name,Orc.hp,Orc.thaco,Orc.ac,Orc.inventory)

while True:
    #pick a new random monster
    mob = ranmob()
    #print the name of the random monster
    print(mob.name)