python - 如何在不使用装饰器的情况下运行一次函数?
问题描述
当 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()
推荐阅读
- java - 从内部连接发布到 Maven 中心
- buffer - AudioKit / AVAudioEngine 依次播放节点
- oracle - USERENV('SESSIONID') 和 USERENV('SID) 之间的区别?
- python - 如何在 R 中保存 logit 模型并在 Python 中导入?
- php - 从 PHP 中的数组中获取特定值
- xamarin.forms - Xamarin 表单集合视图额外填充
- java - 如何在截止日期调用 grpc blockstub 时管理应用程序崩溃
- angular - Angular httpClient - RXJS 用法
- python - 如何将参数传递给python中的映射器函数?
- php - 需要使用 WordPress 按钮触发 Linux 后端脚本