Как Python решает, является ли последняя часть импортированного имени модулем или функцией?Python

Программы на Python
Ответить
Anonymous
 Как Python решает, является ли последняя часть импортированного имени модулем или функцией?

Сообщение Anonymous »

Мой первый вопрос: действителен ли код в main.py?
Это main.py:

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

import foo.bar as fb
fb()
Это foo/__init__.py:

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

from .bar import * # DELETE THIS
bar = lambda: print('lambda bar')

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

foo/bar.py пуст. Версия Python — 3.12.3.
Второй вопрос: почему удаление первой строки из foo/__init__.py
вызывает ошибку «TypeError: объект «модуль» не может быть вызван»? Это неопределенное поведение, реализация определена или документирована где-нибудь? Как Python решает, относится ли имя к функции или подмодулю?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -module-or
Ответить

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

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

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

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

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