• Cмысл декоратора property?

    zymanch
    @zymanch
    python/django web-developer
    что, вкратце, делает декоратор property:
    class property(object):
        def __init__(self, fget):
            self.fget = fget
    
        def __get__(self, obj, type = None):
            return self.fget(obj)

    т.о., property реализован через дескриптор, в котором есть только getter
    в случае вашего примера, с точки зрения внутренней архитектуры python, разница будет такова:
    obj = Person()
    # obj.full_name_2()
    Person.__dict__['full_name_2'](obj)
    # obj.full_name_1
    Person.__dict__['full_name_1'].__get__(obj)

    зачем это нужно? для себя я вижу пока что только одну причину - отделить свойства класса от методов, позволив обращаться к "вычисляемым" свойствам не как к функциям, а как к атрибутам
    Ответ написан
    Комментировать
  • Cмысл декоратора property?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    "чем отличается первый метод от второго?"
    первый метод нужно вызывать без скобок и он прикидывается обычной переменной-членом класса, хотя внутри может быть спрятана весьма замысловатая логика. Обычный геттер, только более удобный.
    Ответ написан
    1 комментарий
  • Post и Get запросы, какая между ними разница и что лучше и для каких целей?

    gadfi
    @gadfi
    https://gamega.org
    GET ─получить данные
    PUT ─ создать данные
    POST ─ редактировать данные
    DELETE ─ удалить данные

    С PUT и POST часто неразбериха, разные источники рекомендуют по разному ... на самом деле их обоих можно использовать для создания и редактирования, выбирать вам, разве что если один объект то PUT, несколько то POST. Не будет ошибкой использовать POST для одного объекта, это все скорее правила хорошего тона чем жесткие требования ─ встречал api где все было на GET запросах (криво намой взгляд, но работает).
    Также не забывайте про статус ответа ─ недавно работал с api где статусы были в виде gson объектов ..... вот это уже маразм.
    Ответ написан
    2 комментария
  • Как настроить разделение методов в Intellij IDEA?

    @Braidner
    Есть такая штука.
    2744f9a33a9f403ba3d5ffdbef39a2f9.PNG
    Иначе делайте лайв темлейт.
    Ответ написан
    Комментировать