【问题标题】:Why can I use the random.radint method without instantiating an instance?为什么我可以在不实例化实例的情况下使用 random.radit 方法?
【发布时间】:2020-07-23 09:59:28
【问题描述】:

要使用 random.randint 方法,我可以使用以下两个选项:

import random

# one way to use random
random.randint(1,10)

# second way with instanciating first
instance = random.Random()
instance.randint(1,10)

为什么我还没有实例化实例,但我可以使用第一种方式?

【问题讨论】:

    标签: python python-3.x random


    【解决方案1】:

    导入random 会将Random 实例化为私有变量。

    random.py 的第 786 行。

    _inst = Random()
    

    然后在第 791 行。

    randint = _inst.randint
    

    random.py 位于 python 安装的 Lib 文件夹中,如果您想自己查看的话。

    第 786 - 808 行是感兴趣的行。他们基本上将 random 的私有实例的所有方法设置为变量,以便可以这样调用它们。

    来自文档。

    此模块提供的函数实际上是 random.Random 类的隐藏实例的绑定方法。您可以实例化您自己的 Random 实例以获取不共享状态的生成器。

    https://docs.python.org/3/library/random.html

    【讨论】:

      猜你喜欢
      • 2022-07-22
      • 2020-09-17
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 1970-01-01
      相关资源
      最近更新 更多