Я пытаюсь использовать как модуль, так и импорт из модуля.
Я использую from time import sleep
уже несколько лет, но мне нужен доступ к большему количеству функций из пакета.
Моя проблема в том, что если я использую import time
, я теряю вызов способности sleep()
напрямую.
Я пробовал;
import time
from time import sleep
Но я получаю сообщение об ошибке:
loop_time = time()
TypeError: 'module' object is not callable
и если я попытаюсь импортировать весь пакет и удалить from time import sleep
, я получаю сообщение об ошибке:
sleep(1)
NameError: name 'sleep' is not defined
Я могу использовать функцию переименования всех в Visual Studio, чтобы обновить sleep(x)
до time.sleep(x)
, но мне интересно, есть ли другой способ/лучший способ сделать это? У меня нет большой проблемы, потому что я не использую слово «сон» нигде в своем коде, но я ожидаю, что если бы было слово, которое я не мог бы переименовать, это было бы гораздо более раздражающей проблемой.
Используйте ключевое слово *
.
from time import *
Но будьте осторожны, это, как правило, плохая практика, так как вы можете столкнуться с некоторыми конфликтами имен, а использование time.sleep()
дает понять тому, кто читает код, какой модуль вы используете.
Пришлось использовать time.time()
шокирующе
Вы должны иметь возможность использовать этот ответ и использовать sleep()
напрямую без time.
. Я думаю, что ошибка, которую вы получаете, связана с тем, что если вы попытаетесь импортировать модуль с именем x с помощью import x
, а затем в своем коде вызовите x()
, это не будет иметь особого смысла, верно? Однако некоторые модули, такие как datetime, имеют классы, называемые datetime, поэтому что-то вроде from datetime import datetime
, а затем вызов datetime()
в вашем коде на самом деле будет работать нормально.
Имея это в виду, я обновил вызовы
sleep()
наtime.sleep()
и используюimport time
, однако, как ни странно, получение TypeError при попытке использоватьtime()
time сейчас не дает мне времени.