创建随机类的实例

时间:2015-10-28 00:48:46

标签: python

我目前在python上制作基于文本的游戏,我有一个问题。 我有一些房间的课程,如RoomSpider,RoomSoldier,RoomDragon等。我想创建一个地图(3d数组)并用一个随机类的实例填充一些房间。

例如:

[[RoomSpider, RoomSoldier],
[RoomSoldier,RoomDragon]]

如何创建随机类的实例?

3 个答案:

答案 0 :(得分:3)

制作随机类的实例:

import random
classes = (RoomSpider, RoomSoldier, RoomDragon, 
           RoomElephant, RoomPixie)

# choose a random class from the list and instantiate it
instance = random.choice(classes)()

答案 1 :(得分:1)

看看random.choice,它可以让您从序列中选择一个随机元素。

from random import choice
classes = (RoomSpider, RoomSoldier, RoomDragon, ...)
room = [[choice(classes)() for _ in range(2)] for __ in range(2)]

答案 2 :(得分:1)

类是Python中的第一类对象,这意味着您可以将它们存储在变量中并传递它们。因此,例如,您可以创建所有可能类的列表/元组,然后选择随机类:

import random

room_classes = (RoomSpider, RoomSoldier, RoomDragon)
room_map = []

for row in range(5):
    room_row = []
    for col in range(5):
        room_class = random.choice(room_classes) # picks a random class
        room_row.append(room_class())            # creates an instance of that class
    room_map.append(room_row)

这使用random.choice()生成一组5x5随机选择的实例。