• Как данные перемещаются в сети интернет, всегда конвертируются в кадры Ethernet или остаются в пакетах IP?

    Vamp
    @Vamp
    1. Пакеты не конвертируются друг в друга, а вкладываются. То есть в типичном пакете имеются сразу три заголовка - Ethernet, IP и TCP. И когда маршрутизатор решает куда отправить пакет дальше, смотрит только на заголовок IP. У маршрутизатора существует таблица маршрутизации, которая указывает какие IP адреса на какой интерфейс отправлять. Непосредственно перед отправкой маршрутизатор перезапишет ethernet заголовок и вставит в него свой MAC в поле "source MAC address", а MAC выбранного следующего получателя в поле "destination mac address".

    Но в таком случае ведь все-равно в ethernet нельзя закольцовывать пути, а маршрутизаторы по-любому где-нибудь закольцованы.
    Верно. Но обычно кольца не являются проблемой, так как легко разруливаются при помощи протокола STP. Иногда кольца делают даже специально для автоматического фэиловера.

    2. Упаковка в Ethernet может быть пропущена только если источник пакета по каким-то своим внутренним соображениям решает не отправлять его. Например, если сработало запрещающее правило фаервола. Очевидно, что такой пакет не покинет своего места рождения. И, кстати, Ethernet - это ещё не физический уровень.

    3. Ethernet используется в локальных сетях. И топология LAN на это не влияет - с маршрутизатором или без него.

    4. Если есть чисто локалка на свиче, то сетевой уровень по-любому используется?
    Да, сетевой уровень используется и здесь.

    Допустим с датаграммы udp упаковка в ip пакет, затем только в кадр ethernet?
    Да, UDP заворачивается сначала в IP, а затем в Ethernet.

    И по-любому отрабатывают dhcp и arp?
    DHCP не является обязательным для применения (он, кстати, работает поверх UDP). ARP тоже может не использоваться, если в этой сети не используется IP адресация (а вот ARP уже самостоятельный протокол канального уровня, который упаковывается только в Ethernet).

    5. Во времена до изобретения Ethernet использовались другие протоколы. Соответственно, и оборудование было другое, поддерживающее данные протоколы.
    Ответ написан
    3 комментария
  • Что есть переопределение, расширение, перегрузка в Python?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    Перегрузки в питоне нет. Пример.
    Переопределения (redefinition) в питоне тоже нет
    Расширения (extensions) в питоне есть, но совершенно не те что в вопросе.

    Это если дотошно разбираться. А вообще, читайте документацию на английском, вопросов к переводчикам станет меньше.
    Ответ написан
    1 комментарий
  • Как реализуют инкапсуляцию в python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Камрад hack504 хорошо направил. Модификаторы доступа.
    Просто прими тот факт, что это интерпретируемый язык и прятать в нём что-то - дело неблагодарное.
    Если тебе надо скрыть реализацию каких-то внутренних механизмов создаваемой тобой библиотеки, то тут только положиться на джентльменские соглашения с подчёркиваниями и обеспечить хорошую документацию чтобы не было необходимости залезать в потроха.
    Если ты просто что-то пишешь (конечный продукт) - просто пиши. Не заморачивайся с этим, пока не возникнет прямой необходимости.

    Если же пишешь что-то шибко коммерческое и хочешь реально скрыть реализацию, вот чтоб прям ну никак не посмотреть, что там в потрохах - пиши на другом языке. Например всю машинерию на C, а на python только обвязку.
    Ответ написан
    Комментировать
  • Как реализуют инкапсуляцию в python?

    hack504
    @hack504
    Правильнее говорить "Модификаторы доступа", т.к. Инкапсуляция это своего рода механизм, который имеет более обширное понятие, чем модификаторы доступа - protected, private, public.

    По теме: реализуются через декораторы https://habr.com/ru/post/443192/
    Ответ написан
    4 комментария
  • Какой gui для Python удобней?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    https://pypi.org/project/PySimpleGUI/

    более удобный вариант

    правда, в екзешник побрать иногда поднапрячься
    Ответ написан
    4 комментария
  • Какой gui для Python удобней?

    @YariKartoshe4ka
    Если пишите адаптивный софт, то kivy прямо в точку, а так pyqt5 даже очень не плохой вариант. QtDesiner хорошая программа, даже очень удобная, а насчет конвертирования, то не большая это уж проблема - простенький батник облегчит мучения.
    Ответ написан
    3 комментария