Как загружаются модули, если вы не загружаете файл напрямую [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как загружаются модули, если вы не загружаете файл напрямую [дубликат]

Сообщение Anonymous »

Мне интересно, как именно Python узнает, что нужно использовать модуль, если сам файл не был загружен в память, я что-то упускаю из того, как все загружается в Python?
main. py

Код: Выделить всё

from sub import Sub

ref = Sub()

print( ref )

ref.something()
sub.py

Код: Выделить всё

import sys

class Sub:
def __init__( self ):
self.name = "Sub";

def something( self ):
# How exactly is sys available here if I directly imported the Sub class only?
sys.stdout.write( "Hello, from Sub!" );
Вывод будет таким, как вы ожидаете;

Код: Выделить всё

Hello from Sub
Однако мне это кажется не совсем логичным; Я ожидаю, что вам нужно будет сначала загрузить модуль sys на этапе импорта, а затем использовать Sub для инициализации ссылки;

Код: Выделить всё

import sub
from sub import Sub
Для справки: оба способа работают так, как и следовало ожидать, но первый кажется мне немного странным, если подумать, по какой-то причине, есть ли у кого-нибудь объяснение?
РЕДАКТИРОВАТЬ: немного посмотрев на вопрос, возможно, я просто неправильно читаю оператор импорта, может быть, это похоже на;
from sub import Sub означает сначала импортировать Sub, а затем импортировать Sub() после того, как вы загрузили файл в память и инициализировали его.
Как я могу проверить байт-код Python, чтобы увидеть, что именно собирается под капотом?

Подробнее здесь: https://stackoverflow.com/questions/790 ... d-the-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»