Чтобы использовать метод 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)
Почему я могу использовать первый способ, хотя я еще не создал экземпляр?
1 ответ
Импорт random
создает экземпляр Random
в частной переменной.
На строке 786 из random.py
.
_inst = Random()
И затем по строке 791.
randint = _inst.randint
random.py
находится в папке Lib
вашей установки Python, если вы хотите проверить это самостоятельно.
Строки 786–808 представляют интерес. Они в основном устанавливают все методы этого частного экземпляра random на переменные, чтобы их можно было вызывать таким образом.
Из документации.
Функции, предоставляемые этим модулем, на самом деле являются связанными методами скрытого экземпляра класса random.Random. Вы можете создавать свои собственные экземпляры Random, чтобы получить генераторы, которые не разделяют состояние.
https://docs.python.org/3/library/random.html
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.