如何获取Python中random.Random类的全局实例?
获取Python random模块的全局Random实例
要获取random.choice()、random.random()等全局随机函数所使用的random.Random类实例,直接访问random模块的_inst私有属性即可:
import random # 获取全局默认的Random实例 global_rng = random._inst
你可以通过这个实例调用所有Random类的方法,效果和直接使用模块级的随机函数完全一致,比如:
sample_list = ["apple", "banana", "cherry"] # 用全局实例调用choice print(global_rng.choice(sample_list)) # 和直接调用random.choice等价 print(random.choice(sample_list))
需要注意:_inst是模块的私有属性(命名以下划线开头),Python官方并未将其列为公开API,未来版本的Python可能会修改或移除这个属性。如果是用于生产环境的代码,更稳妥的方式是自行创建并维护一个Random实例,而非依赖这个私有属性。
内容的提问来源于stack exchange,提问作者Timmmm
相关产品推荐
相关产品推荐

