С Днем программиста!

Discussion in 'Off Topic' started by Relict, Sep 13, 2010.

  1. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Почитай про "стандарт" PEP8. У меня его контроль включен в Pycharm Pro. Враг не пройдет.
     
  2. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Для того же android'а kivy уже есть... Не знаю, насколько рабочий.
     
  3. isaev

    isaev Well-Known Member

    Joined:
    Dec 7, 2007
    Messages:
    6,251
    Никогда ничем не пользовался но тоже осуждаю :dura:
     
    mcgru- likes this.
  4. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    PEP8
    Code:
    class Rectangle(Blob):
        def __init__(self, width, height,
                     color='black', emphasis=None, highlight=0):
            if width == 0 and height == 0 and \
               color == 'red' and emphasis == 'strong' or \
               highlight > 100:
                raise ValueError("sorry, you lose")
            if width == 0 and height == 0 and (color == 'red' or
                                               emphasis is None):
                raise ValueError("I don't think so -- values are %s, %s" %
                                 (width, height))
            Blob.__init__(self, width, height,
                          color, emphasis, highlight)
    Ну, лично для меня нечитабельно.
     
    Flk likes this.
  5. -Shai-

    -Shai- Well-Known Member

    Joined:
    Mar 13, 2000
    Messages:
    41,816
    Location:
    РФ
    хм... да вроде не смертельно. по крайней мере местами)
     
  6. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,401
    Location:
    Russia
  7. breedr

    breedr FH Developer

    Joined:
    Jan 27, 2000
    Messages:
    970
    А что это означает?
     
  8. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,401
    Location:
    Russia
    Это мое отношение к коду на питоне стандарту PEP8.
     
  9. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,464
    Location:
    Tomsk, Russia
    если PEP8, то логично было бы использовать 8 пробелов в отступах ;)
    ну а чо? ишшо читабельнее было бы :)
     
  10. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Ну, ограничение на максимальную длину строки, это было первое, что я отключил.... Стараюсь за 160 не вылезать. Также убрал пробелы вокруг знаков математических операций - иначе совсем труба с моими задачами бывает. В Pycharm'е цветом выделил. Если припрет, верну обратно, но вот a ** b меня реально раздражает. И пустые строки в коде никто не запрещает (если их не больше одной)...

    А что касается твоего примера, так я бы его вот так чуть причесал:

    Code:
    class Rectangle(Blob):
    
        def __init__(self, width, height, color='black', emphasis=None, highlight=0):
    
            if width == 0 and height == 0:
                if color == 'red' and emphasis == 'strong' or highlight > 100:
                    raise ValueError("sorry, you lose")
                if color == 'red' or emphasis is None:
                    raise ValueError("I don't think so -- values are 0, 0")
    
            Blob.__init__(self, width, height, color, emphasis, highlight)
    
    Вроде оба раза не ошибся. Лучше ведь стало? Т.е. проблема не в в PEP8, а в плохом коде?

    Нее, ошибся таки. Сейчас исправлю.
     
    Last edited: Sep 19, 2018
  11. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Code:
    class Rectangle(Blob):
    
        def __init__(self, width, height, color='black', emphasis=None, highlight=0):
    
            if highlight > 100:
                raise ValueError("sorry, you lose")
    
            if width == 0 and height == 0:
                if color == 'red' and emphasis == 'strong':
                    raise ValueError('sorry, you lose')
                if color == 'red' or emphasis is None:
                    raise ValueError('I don't think so -- values are 0, 0')
    
            Blob.__init__(self, width, height, color, emphasis, highlight)
    
    Так правильнее. Еще и кавычки исправил на одинарные.
     
    Last edited: Sep 19, 2018
  12. Flk

    Flk Well-Known Member

    Joined:
    Aug 21, 2002
    Messages:
    17,210
    Location:
    Izhevsk
    За такие штуки в языках надо на костре сжигать :) Слишком часто подобное появляется, когда в ЯП вкорячивают ООП. В остальном питон читается легко.
    А вот "программирование пробелами" даёт о себе знать. При копипасте кода туда-сюда из интернетов слишком часто теряется выравнивание. Несколько раз приходилось править такие штуки, восстанавливая алгоритм. Работа ручная. Автоформатирование в этом случае невозможно.
     
    -Shai- likes this.
  13. bimbom

    bimbom FH Beta Tester

    Joined:
    Jan 19, 2006
    Messages:
    7,431
    Location:
    Moscow, Russia
    Это пример кода с сайта про PEP8: https://pep8.ru/doc/pep8/
     
  14. -andy-

    -andy- Well-Known Member

    Joined:
    Feb 12, 2000
    Messages:
    8,871
    Location:
    St.Petersburg
    Ну а зачем ты полез на непонятный русский сайт? Там совсем не перевод...

    Sent from my HTC One M9 using Tapatalk