TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #205 · 22 јан.

Как работает функция 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

Резултати

Пронајдени 3 слични објави

Пребарај: #exoplayer

当前筛选 #exoplayer清除筛选
Android Broadcast

@android_broadcast · Post #9885 · 11.03.2026 г., 06:38

🤖Как уменьшить задержку воспроизведения видео? Решение есть в AndroidX Media3 Одна из задач при скролле контента в ленте - убрать задержку показа/воспроизведения контента, чтобы у пользователя не было ожидания или оно было минимальным (при условии стабильного интернет соединения). Для более быстрого старта воспроизведения видео стоит использовать Preload API в ExoPlayer из Jetpack Media 3. В посте приложил демонстрацию как это реально уменьшает задержку старта воспроизведения. 🔗 Опытом адаптации PreloadManager в приложение поделились в статье 🔗 Руководство по интеграции PreloadManager в документации * Instagram признан экстремистcкой организацией на территории Российской Федерации #Android#AndroidDev#ExoPlayer

Android Broadcast

@android_broadcast · Post #8966 · 15.04.2025 г., 12:14

🤖Демонстрация (EN,5м) работы предзагрузки видео в Media3 Expoplayer 1.4.0. Показывается пример кода как это реализовать, а также впечатления от использования. 🔗Альтернативная ссылка #android#медиа#exoplayer

Android Broadcast

@android_broadcast · Post #9408 · 13.08.2025 г., 06:38

🚀Media3 1.8.0 — апдейт, который стоит внедрить прямо сейчас Google продолжает прокачивать медиа API, и в этом релизе есть фичи, которые экономят время разработки и улучшают UX. 📺ExoPlayer 👉 Плавная перемотка: новый ScrubbingMode делает скролл прогресс-бара без отрыва пальца супер-отзывчивым. Пользователь почувствует разницу. 👉Встроенная видео-реклама: нативная поддержка Ads Interstitials в стриминге — меньше костылей. 👉 Длительность видео без проигрывания: val duration = MetadataRetriever .Builder(context, mediaItem) .build() .use { it.retrieveDurationUs().await() } 👉PreCacheHelper — загрузка контента по частям для более быстрых стартов. 🎵 MediaSession 👉 Плеер в шторке не исчезает сразу после паузы — пользователю проще вернуться к просмотру. ✂️Transformer API 👉 Экспериментальная обрезка видео через MP4 edit list. 👉 Опция CodecDbLite — ускоряет кодирование, подбирая оптимальные настройки под чипсет: Transformer.Builder() .setEncoderFactory( DefaultEncoderFactory.Builder() .setEnableCodecDbLite(true) .build() ) .build() 💡Почему обновляться сейчас 👉 Меньше кастомного кода — больше нативных возможностей. 👉 Повышение отзывчивости плеера = выше удержание пользователей. 👉 Новые API для подготовки к интеграции рекламы и улучшенного UX. Подробнее в анонсе или в changelog #android#AndroidDev#Jetpack#Media3#ExoPlayer