Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我可以在不实例化实例的情况下使用random.radint方法?_Python_Python 3.x_Random - Fatal编程技术网

Python 为什么我可以在不实例化实例的情况下使用random.radint方法?

Python 为什么我可以在不实例化实例的情况下使用random.radint方法?,python,python-3.x,random,Python,Python 3.x,Random,要使用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) 尽管我还没有实例化实例,为什么我可以使用第一种方法?导入random将random实例化到私有变量中 在random.py的第786行

要使用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)

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

导入
random
random
实例化到私有变量中

random.py
的第786行

_inst = Random()
然后在791线上

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

第786-808行是感兴趣的行。他们基本上把那个随机变量的私有实例的所有方法都设置为随机变量,这样就可以这样调用它们了

从文件中

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