Как работает функция reload()?
Эта функция нужна для того, чтобы перезагрузить изменившийся код из py-файла без рестарта интерпретатора.
Дело в том, что любой импортированный модуль при повторном импорте не будет перечитывать файл. Функция импорта вернёт уже загруженный в память объект модуля. Чтобы обновить код, нужно либо перезапустить всю программу, либо использовать функцию reload()
from importlib import reload
reload(my_module)
🔸 Функция reload() принимает в качестве аргумента только объект модуля или пакета. Она не может перезагрузить класс или функцию. Только весь файл целиком!
🔸 Перезагрузка пакета перезагрузит только его файл __init__.py, если он есть. Но не вложенные модули.
🔸Она не может перезагрузить ранее не импортированный модуль.
🔸При вызове функция reload() перечитывает и перекомпилирует код в файле, создавая новые объекты. После создания новых объектов перезаписывается ранее созданный неймспейс этого модуля.
Это значит, что если где-то этот модуль импортирован через import и обращение к атрибутам происходит через неймспейс (имя) модуля, то такие атрибуты обновятся.
Если какие-либо объекты из этого модуля импортированы через from то они будут ссылаться на старые объекты.
Напишем простой модуль
# mymodule.py
x = 1
Теперь импортируем модуль и отдельно переменную х из модуля
>>> import mymodule
>>> from mymodule import x
>>> print(mymodule.x)
1
>>> print(x)
1
Не перезапуская интерпретатор вносим изменения в модуль
# mymodule.py
x = 2
Делаем перезагрузку модуля и проверяем х ещё раз
>>> reload(mymodule)
>>> print(mymodule.x)
2
>>> print(x)
1
То же самое будет если присвоить любой объект переменной (даже словарь или список)
Повторный импорт обновляет значение
>>> from mymodule import x
>>> print(x)
2
🔸Созданные инстансы классов не обновятся после перезагрузки модуля. Их придётся пересоздать.
#tricks#basic
Издательство БамБук показало атмосферную обложку новеллы "Туман. Вне измерений" Вэйфэн Цзисюй, которую для российского издания рисовал китайский художник (жаль, что не указано, кто именно). Надеюсь, скоро будут подробности касательно сроков, а пока любуемся
#China#novel#WeiFengJiXu#Mist#BoWu#анонсы
Не могу вам объяснить, как это работает, но иногда в моей голове выстраиваются неожиданные ассоциативные ряды, на которые просто нельзя закрывать глаза.
Читая очередную главу "Опасных личностей" Мугуа Хуан, я внезапно вспомнила про новеллу "Туман" Вэйфэн Цзисюй. Казалось бы, персонажи и сюжеты не имеют абсолютно ничего общего (кроме ментальных особенностей одного из главных героев), но достаточно было одного эпизода, чтобы я не смогла выкинуть эту мысль из головы.
В "Тумане" мне запал в душу момент, когда капитан Сун, помня о том, что советник Цзи обладает уникальной памятью, фиксирующей все, что видит человек, и не дает впоследствии это забыть (гипертимезия), попытался спасти его от ужасающих воспоминаний о своем расчлененном теле (петли времени вошли в чат), поэтому поспешил закрыть ему глаза, поставив душевное равновесие этого человека выше своего собственного. Он попытался посмотреть на мир глазами Цзи Юйши, и картина эта, как мне кажется, была весьма пугающая.
В "Опасных личностях", когда Се Линь узнает о способности Чи Цина читать мысли, он воспринимает эту новость с должным пониманием, но моментально перенастраивает свою оптику и начинает ставить себя на место этого странного нелюдимого парня, пытаясь понять, что тот чувствует, когда пропускает через себя порочные мысли людей. Казалось бы, эта способность — дар свыше, благодаря которому можно раскрыть столько запутанных дел, но реакция Се Линя оказалась совершенно иной, ибо он поставил душевное равновесие близкого человека выше очевидной выгоды:
— Не снимай перчатки, — Се Линь положил руку ему на плечо. — Тебе не нужно слушать её мысли. Если она не хочет говорить, всегда найдётся способ вывести её на чистую воду. Короче, тебе не нужно вмешиваться.
Ранее он догадался лишь о «способности» Чи Цина, а также предположил, что тот каждый раз слышит не совсем нормальные вещи. Но сегодня впервые оказался так близко к этой способности.
Как именно радовалась Цзян Июнь у себя в мыслях? Какой недобрый смех Чи Цин услышал? Се Линь не решался даже думать об этом. Он знал лишь одно: эти голоса могли заставить кого угодно начать избегать людское общество в целом.
И если это способ излечения, Се Линь скорее согласился бы на то, чтобы Чи Цин навсегда остался бесчувственным и отстранённым.
— Пусть даже ты никогда не избавишься от своей болезни, плевать, — сказал он. — Что до чужих мыслей, это вовсе не имеет значения. Не надо их слушать, не надо никого трогать. Если вокруг соберётся толпа народу, ты просто встань за мной и возьми меня за руку.
Мугуа Хуан. Опасные личности. Глава 100. Телефонный разговор
Почему-то именно такие детали задевают тонкие струны моей души больше, чем любые героические поступки и пафосные речи.
#China#novel#MuGuaHuang#DangerousPersonality#WeiFengJiXu#BoWu
Торжественно объявляю празднование Китайского Нового года законным поводом, чтобы прописать на своих книжных полках новых китайских обитателей!
Внезапно получила в подарок недавно вышедшие томики издательства БамБук — первые части новелл "Туман Вне измерений" Вэйфэйн Цзисюй и "Его Темнейшество желает знать" Цинсэ Юйи и 11-й том маньхуа "Основатель тёмного пути".
С "Темнейшеством" пока лично не знакома, но "Туман" когда-то занял особое место в моём сердце, замкнув десятку первых прочитанных даньмэй-историй. По моему каналу не скажешь, но я являюсь большим поклонником качественного сай-фая (и сейчас как раз читаю одну шикарную историю, о которой скоро будут вам трещать на все лады), поэтому "Туман" угодил всем моим вкусам и даже попал в топ-5 новелл 2022 года.
К сожалению, в те времена я ещё не отличалась систематичностью (впрочем, как и сейчас), поэтому полноценного отзыва тогда не написала. Но есть небольшая заметка, которая намекает, что пора бы освежить свои воспоминания и ещё раз прокатиться на этой чёртовой карусели петле времени.
#China#novel#DevilVenerable#QingseYuyi#WeiFengJiXu#Mist#BoWu#БамБук