当y <x函数只运行一次并且只播放一个声音时,但是当我运行脚本时它会播放多个声音。如何只运行一次?
我尝试用装饰器解决它,但我失败了。
def random_choice(x, y):
random_Process = [Process(target=play_sound0).start(),
Process(target=play_sound1).start(),
Process(target=play_sound2).start()]
if y < x:
random.choice(random_Process)
if __name__ == '__main__':
random_choice(50, random.randint(40, 60))
期待:一个随机
Process(target=play_sound1).start()
运行时:三个随机
Process(target=play_sound2).start()
Process(target=play_sound0).start()
Process(target=play_sound1).start()
这条线
random_Process = [Process(target=play_sound0).start(),
Process(target=play_sound1).start(),
Process(target=play_sound2).start()]
启动所有三个Process
实例。如果您只想启动一个,请选择target
:
targets = [
play_sound0,
play_sound1,
play_sound2
]
target = random.choice(targets)
Process(target=target).start()