有没有办法选择我的构造函数中随机使用?我有一个非常深入的代码,但下面写了一个愚蠢的代码,只是为了让它尽可能简单。
class Engine(object):
def __init__(self, scenario, fart, shart):
self.scenario = scenario
self.fart = fart
self.shart = shart
self.outcomes = [fart,shart]
def giveScenario(self):
print self.scenario
def chooseOutcome(self):
outcome = random.choice(self.outcomes)
print outcome
dinner = Engine('You are at dinner','You fart','You shart')
home = Engine('You are at home','You fart','You shart')
现在让我们说我打算做一个游戏,选择这两个构造函数中的随机一个(晚餐或家庭版)加载到这个坏男孩,有没有办法做到这一点?
编辑:要清楚,我知道如何选择一个随机的结果,我想知道如何让这个程序运行并选择只有晚餐或只有回家运行。
[randomly chosen operator].chooseOutcome()
也会返回 "你正在吃晚饭" /"你在家"和给定的结果
答案 0 :(得分:3)
除非我完全误解了你的要求,否则这很容易:
dinner = Engine('You are at dinner','You fart','You shart')
home = Engine('You are at home','You fart','You shart')
random.choice([dinner, home]).chooseOutcome()
或者,如果您只需要一次,并希望避免不必要的实例化:
Engine(
random.choice(['You are at dinner', 'You are at home']),
'You fart',
'You shart',
).chooseOutcome()
如果您需要在相同的随机选择的引擎上调用多个操作,只需分别存储random.choice([dinner, home])
或Engine(random.choice(['You are at dinner', 'You are at home']), 'You fart','You shart')
的结果。