我有一个函数可以构建随机数量的对象实例。为了演示总体思路,我们将假设这是一种构建一系列类似 nethack 的房间的算法。
要求是这样的,我不会提前知道会有多少实例;这些是随机和即时生成的。
作为一个简短的说明:我完全意识到以下代码是非功能性的,但它应该(希望!)证明我的目标。
import random
class Levelbuild(object):
def __init__(self):
self.l1 = dict({0:'a',1:'b',2:'c',3:'d',4:'e',5:'f',6:'g',7:'h',8:'i'})
# Pick a random number between 4 and 9.
for i in range(random.randint(4,9)):
self.l1[i] = Roombuilder()
如果我们假设选择的随机整数是 5,理想的结果是 5 个 Roombuilder() 实例;分别标记为 a、b、c、d 和 e。
有没有一种简单的方法可以做到这一点?这个时期有办法吗?
- 编辑 -
对 Nick ODell 的回答表示巨大的“谢谢”。这不是完整的复制/粘贴——但它是一种适合我需要的变体;
import random
class Room(object):
def __init__(self):
self.size = (5,5)
class Level(object):
def __init__(self):
roomnames = ['a','b','c','d','e','f','g','h','i']
self.rooms = {}
for i in range(random.randint(4, 9)):
self.rooms[roomnames[i]] = Room()
与其手工建造每个“房间”,我现在可以...
test = Level()
print test.rooms['a'].size
>>> (5,5)