• Классы и объекты в python, self?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так как по некоторым причинам в питоне нет контекстов и областей видимости, то функции-классов нужно передавать в явном виде ссылку на экземпляр объекта, которая и передается первым аргументом в качестве self.
    Собственно, сами классы в питоне организованы через великий dict!
    >>> class T():
    ...  def a(self):
    ...     print self.test
    ... 
    >>> a = T()
    >>> a.test =1
    >>> b= T()
    >>> b.test =2
    >>> a.a()
    1
    >>> b.a()
    2
    >>> T.a(b)
    2
    >>> T.a(a)
    1
    Ответ написан
    3 комментария
  • Классы и объекты в python, self?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Спасибо вам за вопрос. Самому стало интересно докопаться до сути. Нашел хорошее объяснение
    тут
    Ответ написан
    Комментировать
  • Классы и объекты в python, self?

    longclaps
    @longclaps
    в него попадает название экземпляра класса
    Экземпляр может быть безымянным (например, лежать в списке), но идея в принципе верна - в self попадает id объекта:
    class A:
        def f(self):
            print(self)
            print(hex(id(self)))
    
    a = A()
    a.f()

    не понимаю зачем нужен атрибут self
    Не уверен, что понимаю вопрос - настолько очевиден ответ, к тому же следующий прямо за вопросом. Смотрите на это как на синтаксический сахар: при вызове метода вы пишете экземпляр.метод(аргументы), а в реализации def метод(экземпляр, аргументы). Имя первого аргумента вообще-то произвольное, обычно пишут "self", но python3 допускает даже русский идентификатор "экземпляр", можете попробовать.
    Ответ написан
    5 комментариев
  • Сколько у вас ушло времени чтобы стать python junior developer?

    @Trahibidadido
    Backend/DevOps
    Пришел python\django juniorом с улицы. За немалое время работы сожрал пуд соли. Самое большое разочарование - все ищут питонистов для быстрой разработки (порог вхождения ниже наверное только у php) и берут джунов на не джуниорские задачи. Я за первый месяц работы что только не писал, от системы скидок для интернет магазинов на Django, до админки системы курьерской доставки интернет-ритейлера написаной на связке Flusk+Vue+Jquery которую до меня писал десяток человек и все бросали.

    Никто практически никогда не готов тебя учить, если на более "мейнстримных" языках ты получаешь более низкий оклад, но больший штат серьезных девов с многолетним опытом и высокий шанс того что за тобой будут "присматривать", то попадая в компанию которая пишет на python - ты сам по себе. Потому что питонистов тупо мало и стоят они дорого, никто не хочет тратить их время на всякие кодревью и митапы.

    Не согласен с оратором выше, джун это просто человек способный писать работающий код. Как он это делает и что этот код из себя представляет - вопрос второй. Я пишу нереальные костыли и ничего, заказчик доволен, начальнику пофигу, зп на карточке.
    Ответ написан
    Комментировать
  • Сколько у вас ушло времени чтобы стать python junior developer?

    AgentProvocateur
    @AgentProvocateur
    По литературе для начинающих и не только отвечал здесь. Далее по срокам вкатывания...

    Если для собственных web-разработок, то python нормальный вариант. Можно довольно безболезненно вкатиться, сформировать грамотный фундамент у себя в голове, довольно быстро создать прототип и т.д.

    Если намерен идти наемным питонистом-джуниором, то тут может постигнуть разочарование:

    1. На реальном рынке python/django - самая невостребованная web-технология, как в СНГ, так и на западе, в сравнении с php/js/ruby/.net и т.д.
    2. Полистай вакансии python-джуниоров - там либо требования к годам опыта, либо требования других языков. В общем, не джуниорские требования в основном.
    3. В большинстве вакансий python упоминается либо в качестве доп.языка ("будет плюсом"), либо в качестве бэкграунда для дальнейшего переката на Go, либо в качестве технологии для разного рода аналитиков.
    4. На фрилансе также не густо в сравнении с php/js/ruby. Опыт/порфолио по web-python там сложновато наработать (гораздо больший спрос на всякие скрипты автоматизации, парсеры и т.д.).
    5. Если ты не из столицы (Москва/Питер/Киев/Минск), то про вакансии python-джуниора вообще забудь, в регионах они если и встречаются, то в качестве исключений, подтверждающих правило. Открыл сейчас HH - по моему миллионнику ни одной.

    К чему я это всё...типичный путь в python-разработку лежит через условные "5 лет на php" у подавляющего большинства. Python-проекты также подворачиваются волей случая чаще всего. Естественно, эти люди будут отвечать, что от "hello world" до реальной разработки у них ушло от недели до месяца...но тебя это полезной смысловой нагрузки не принесет, кроме иллюзий.

    В среднем, на любой web-технологии от знакомства до уверенного джуниора проходит не менее 1.5 лет ежедневного практического (!) обучения. Т.к. уверенный джуниор - тот, кто не менее полугода трудится в реальном командном проекте и показывает результаты, то с python по вышеобозначенным причинам этот срок может увеличиться.
    Ответ написан
    1 комментарий
  • Сколько у вас ушло времени чтобы стать python junior developer?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Нужно не читать много книжек, а писать код.
    Книжки - как дополнение к практике, которая должна занимать бОльшую и основную часть в изучении языка.

    Пишите код, решайте разные задачи созданием программ.
    Книжки читайте для обзора стратегий и возможностей. Основное - документация по функциям и операторам.

    Джуном можно стать и за месяц и может даже за неделю, если ты уже умеешь программировать.
    Но многие новички не хотят понимать, что кроме языка программирования, есть собственно само программирование - понимание структур данных, умение оперировать циклами и условиями, понимание архитектуры в целом и умение создавать алгоритмы (неважно на каком языке).
    Ответ написан
    Комментировать
  • Установка Gnome в Ubuntu, в чем ошибка?

    ctrl + alt + f1 затем
    sudo apt-get install ubuntu-gnome-desktop
    sudo sudo service lightdm resart
    Ответ написан
    Комментировать
  • Установка Gnome в Ubuntu, в чем ошибка?

    Astrohas
    @Astrohas
    Python/Django Developer
    ctrl + alt + f1 затем sudo apt-get install ubuntu-gnome-desktop
    Ответ написан
    Комментировать