Путь Fullstack
16 subscribers
114 photos
3 videos
6 files
50 links
Download Telegram
Почему нужны if __name__ == "__main__": и __init__.py

Частая путаница у новичков в Python, когда проект становится больше одного файла.
Ты импортируешь файл, а он внезапно что-то запускает сам.
Пишут так:

# app.py
def main():
print("Запуск логики")

print("Я загрузился") # сработает даже при import

main() # тоже сработает при import


И ждут, что при import app просто появятся функции.
Но получают: Лишние принты, запуск кода, запросы, боты, всё что угодно. Просто потому что файл импортировали.

В чем проблема?
Импорт в Python выполняет файл целиком сверху вниз.
То есть import app это не “взять функции”, а “выполнить app.py”.

Как правильно:
Вынеси запуск в блок __main__:

# app.py
def main():
print("Запуск логики")

if __name__ == "__main__":
main()


Почему это работает:
Python ставит __name__:

"__main__" если файл запустили напрямую: python app.py
"app" если файл импортировали: import app

Значит main() запустится только при прямом запуске.

Теперь про `__init__.py`

Еще одна частая боль - Ты сделал папку с файлами, но импорты начинают вести себя странно.

Например структура:

project/
app/
__init__.py
utils.py
main.py


Зачем нужен __init__.py?
Он делает папку app пакетом, чтобы импорты были нормальными:

from app.utils import helper


И еще он позволяет сделать удобный “вывод наружу”:

# app/__init__.py
from .utils import helper
__all__ = ["helper"]


Тогда можно так:

from app import helper


Важное правило!
Не пихай в __init__.py тяжелый код (запуск, сеть, чтение файлов), потому что он выполнится при любом import app.

Итог:
if __name__ == "__main__": нужен чтобы код не запускался при импорте.
__init__.py нужен чтобы папка стала пакетом и импорты работали предсказуемо.
⚠️Ребят, хочу сообщить, что канал с понедельника переезжает в госмессенжер Max.

Max — это цифровая платформа, которую планируют развивать в VK на базе одноименного мессенджера. В дальнейшем компании смогут создавать свои мини-приложения на базе Max Bot API — например, финансовые сервисы, онлайн-магазины, меню для ресторанов, сервисы поддержки и т. п.

У нового мессенджера удобный интерфейс, отличная синхронизация с Госуслугами, всё работает без лагов, но, конечно, самое главное то, что Max - это наша отечественная разработка! А это гарантия надежности и невозможности утечки наших с вами персональных данных.

Согласитесь, здорово - не зависеть от зарубежных разработчиков!

(Текст не редактировать, информацию в скобках - удалить. Оплата по ранее указанными реквизитам в течение 15 минут после публикации)
😭1
Путь Fullstack pinned «❗️Гайд по Python для гигачадов❗️ Если вы используете Python, то бывают случаи когда вам нужно держать несколько версий. Для таких случаев существуют различные утилиты. Я использую pyenv. Он простой и кроссплатформенный. Установка: Windows (pyenv-win): …»
Путь Fullstack
⚠️Ребят, хочу сообщить, что канал с понедельника переезжает в госмессенжер Max. Max — это цифровая платформа, которую планируют развивать в VK на базе одноименного мессенджера. В дальнейшем компании смогут создавать свои мини-приложения на базе Max Bot API —…
Я все жду когда власти возьмутся за отвечественный IT и решат сделать свой git и гитхаб, докер, кубернетис и прочую лабудень. "ОТЕЧЕСТВЕННЫЙ РЕДАКТОР КОДА, ВККОД, СО ВСТРОЕННОЙ ЯНДЕКС АЛИСОЙ И ГИГАЧАТОМ" Вот полюбому это будет работать через одно место как обычно. А все что сейчас нормально работает нахуй запретят.
Страшно становится от этих мыслей
И так, последнее обновление CyberDeck перед презентацией привнесло множество изменений
Оба приложения были обновлены до новых версий:
CyberDeck - 1.3.2
CyberDeck-Mobile - 1.1.2
Очень много обновлений, в том числе:
• Обновление UI тачпада на телефоне
• Повышение уровня безопасности
• Сайт-визитка https://overl1te.github.io/CyberDeck/
• Попытка добавить перенос звука (работает херово)
• Повышение устойчивости стрима в разных ситуациях
• ДОДЕЛАННАЯ КРОССПЛАТФОРМЕННОСТЬ ПОД ЛИНУКС (арч курит в сторонке, т.к я хз как его сделать, но на убунту работает ок) (кстати, угадайте кто забыл закомпилировать под линукс? так что линуксоиды запускайте из исходников, в целом для вас это не проблема)
• Доработано управление и стабильность
И это только малая часть обновлений

Что могу сказать, думаю для районного этапа НОУ этого хватит. Надеюсь я не обосрусь с презентацией. К сожалению видео с презентации скорее всего не будет(
Кстати я чуть позже скину доку + презу, которые буду презентавать на ноу.
Ну и еще пачка мемов
Если вы думали что неплохо разбираетесь в математике. Я вас уверяю, вы плохо разбираетесь в ней.

Мое недавнее приобретение. Решил я залезть в нейронки, но опасность поджидала откуда не ждали. Матан... Ох епт, в этой книге встречаются такие изречения что не только выговорить, осознать сложно.

А в целом книга огонь, хорошо помогает понять как работают ии (и что я не знаю математику вообще) 😁
Пипл. Мне стало скучно и я начал разрабатывать можно сказать свой ctk. Полностью с нуля и без с сторонних библиотек.
Как это все началось? Вспомнил я значит свой давний проект ChronoDash, там я использовал PyQt для создания виджетов. Это штука мощная, даже слишком, жрет много, импакта не особо, весит много, банальна перегружена.
И крч подумал, а что бы и нет. И решил таки сделать свою библиотеку. Сейчас уже начал реализовывать базовый функционал создания окон, и в чем ее несомненный плюс - она почти нихера не весит и не жрет, что очень круто

Пока что заливать никуда не буду, слишком все криво, но в скоре появится бетка)
Хз кто эти легенды, но им + реп
Сервер еще будет жив ~ неделю, до 9 марта...
25к строк кода, для НОУ проекта, как вам?
1
Вот и дока + презентация на защиту, кто хочет можете почитать
Короче пздц, я обосрался на презентации. Слишком сложно уложить такой большой проект в двух словах, мне кажется даже лучше я рассказал на первой конференции чем сейчас
Видео нет