首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建一个随机类的实例

创建一个随机类的实例
EN

Stack Overflow用户
提问于 2015-10-28 00:48:45
回答 3查看 2.4K关注 0票数 1

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

例如:

代码语言:javascript
复制
[[RoomSpider, RoomSoldier],
[RoomSoldier,RoomDragon]]

如何创建随机类的实例?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-28 01:05:53

若要创建随机类的实例:

代码语言:javascript
复制
import random
classes = (RoomSpider, RoomSoldier, RoomDragon, 
           RoomElephant, RoomPixie)

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

Stack Overflow用户

发布于 2015-10-28 01:05:40

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

代码语言:javascript
复制
from random import choice
classes = (RoomSpider, RoomSoldier, RoomDragon, ...)
room = [[choice(classes)() for _ in range(2)] for __ in range(2)]
票数 1
EN

Stack Overflow用户

发布于 2015-10-28 01:07:14

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

代码语言:javascript
复制
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实例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33381066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档