Крик души о Python собеседованиях

Прибиваю в несколько офигевшем состоянии после проведенной пары мини-собеседований с SDET-ами на тему знания ими языка Python. Вообще, для меня Python, можно сказать что не родной язык, т.е. никаких вопросов с подковыркой я задать не могу хотя бы потому, что их просто не знаю. Поэтому, спрашивал то, с чем придется столкнуться при написании тестов для нашего нового тестового бота (который я как раз допилил). Список вопросов на который я пытался получить ответ:

  1. Расскажите про особенности многопоточности в Python. Зачем нужен GIL, его плюсы и минусы. (0 ответов)
  2. Как работает конструкция with open(…). Зачем она вообще нужна? (0 ответов)
  3. Что нужно добавить в класс, что бы при передаче объекта соответствующего типа в качестве аргумента функции print была выведена не информация о типе и адресе, а некая пользовательская строка. (1 ответ)
  4. Как в Python описываются абстрактные базовые классы? Зачем они нужны? (0 ответов)
  5. В чем основные особенности написания асинхронных приложений? (0 ответов)

Вот я думаю, может я что-то не то спрашивал? Просто мне не приходят в голову еще более простые вопросы.

13 Comments Крик души о Python собеседованиях

  1. Andrey Tykhonov

    Очень хорошие вопросы! Спасибо!

    1. Был бы благодарен если посоветуете что-то почитать хорошее о GIL
    3. Не сразу понял вопрос. (при передачи куда?)
    4. Зачем нужны вообще абстрактрактные классы или в Python?
    5. А какие основные особенности?

    Reply
    1. Alexander Stavonin

      1. Про GIL достаточно хорошо написано в Википедии. Мне кажется, этого достаточно для общего понимания.
      3. Это у меня мысль порвалась пока писал. В print
      4. Да меня бы ответ на любой из этих двух вопросов устроил бы.
      5. Думается мне, все видят в этом что-то свое, поэтому просто мысли на этот счет. К основному моменту я бы отнес запрет (логический, не физический) на выполнение долгих операций в цикле обработки сообщений.

      Reply
      1. Andrey Tykhonov

        4. Я бы ответил наверное так: идея абстрактного класса состоит в том, чтобы выделить общий интерфейс (и некоторую общую реализацию) для потомком и оставить абстрактные (нереализированные) методы для конкретной реализации в потомках. Зачем в Python? Я думаю затем чтобы не писать пустые методы с pass.
        Интересно, такой бы ответ Вас бы удовлетворил?

        Reply
        1. Alexander Stavonin

          Да вполне. Кстати, еще, при реализации через ABCMeta, он позволяет не забыть реализовать какой-то из методов.

          Reply
          1. sys_dev

            А как этот вопрос относится к Python-у? Это же ближе к ООП. Мне кажется это вопрос из разряда знаний ООП в целом и также важен как и понимание что такое инкапсуляция, полиморфизм.

      2. sys_dev

        п.1. про GIL . А для чего это нужно знать обычному боевому python-программеру? На мой взгляд лучше пусть знает что такое __slots__, with-конструкцию с его __enter__() / __exit__() вариантами, чем какой-то GIL проблема с которым не так часто возникает

        Reply
        1. Alexander Stavonin

          У меня в проекте было много асинхронной работы, запуска сторонних приложений и т.п. Проблемы с GIL там могли с любой из сторон вылезти.
          Плюс ну крайне странно не знать об одном из _самых_ серьезных ограничений языка с которым ты работаешь постоянно.

          Reply
  2. Andrey Tykhonov

    4. Я бы ответил наверное так: идея абстрактного класса состоит в том, чтобы выделить общий интерфейс (и некоторую общую реализацию) для потомком и оставить абстрактные (нереализированные) методы для конкретной реализации в потомках. Зачем в Python? Я думаю затем чтобы не писать пустые методы с pass.
    Интересно, такой бы ответ Вас бы удовлетворил?

    Reply
  3. llex

    ну 1-4 это всё банально и однозначно….а вот какой ответ должен был быть на 5?

    Reply
      1. Dmitry

        М/б дело в том, что собеседнику вопрос кажется слишком общим? Если “особенности” заменить на “проблемы”, то можно будет узнать о реальном опыте кандидата: как много подводных камней знает и как с ними умеет справляться.

        Reply

Leave a Reply to Andrey Tykhonov Cancel reply