我仍在学习并喜欢构建我最终将在未来定期做的事情,以便让我更好地了解 x 是如何做到这一点或 y 是如何做到这一点的。
我还没有完全了解类是如何工作的,但是我设置了一个将通过多个类的调用。
getattr(monster, monster_class.str().lower())(1)
这称为:
class monster:
def vampire(x):
monster_loot = {'Gold':75, 'Sword':50.3, 'Good Sword':40.5, 'Blood':100.0, 'Ore':.05}
if x == 1:
loot_table.all_loot(monster_loot)
这反过来又称之为......
class loot_table:
def all_loot(monster_loot):
loot = ['Gold', 'Sword', 'Good Sword', 'Ore']
loot_dropped = {}
for i in monster_loot:
if i in loot:
loot_dropped[i] = monster_loot[i]
drop_chance.chance(loot_dropped)
然后,最后,进入最后一堂课。
class drop_chance:
def chance(loot_list):
loot_gained = []
for i in loot_list:
x = random.uniform(0.0,100.0)
if loot_list[i] >= x:
loot_gained.append(i)
return loot_gained
这一切都有效,除了它没有返回 loot_gained。我假设它只是被返回到 loot_table 类,我不知道如何绕过它一直回到发布的第一行。我能得到一些见解吗?