1. Python / Говнокод #26379

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    # Python2
    
    import sys
    print sys.stderr, "Pol chasa ne mog ponyat kakoko huya nichego ne vivoditsya"

    Запостил: 3_dar, 23 Января 2020

    Комментарии (24) RSS

    • Именно поэтому я за 2>&1

      А вообще забавно, прям как в поцКале: оператор выводит все передаваемые параметры, но для первого параметра когда он какого-то определенного типа внезапно делается исключение.
      Ответить
      • Там нужно разделять stdout и stderr. Поэтому stdout-а я не видел, и не понимал в чем дело.
        Ответить
      • Да, для всяких Write, Writeln, Read, Readln в «Паскале» сделали хак, хотя перегрузку функций создавать нельзя (перегрузка появилась только в наследниках типа «Фрипаскаля»). Более того, функций с переменным количеством аргументов (в стиле varargs) в нём не было, потому что не поддерживалось соглашение «cdecl», поэтому write с несколькими выводимыми значениями компилировалось в пачку вызовов write с одним выводимым значением.

        В «Турбопаскале» был файл-затравка SYSTEM.TPS, без которого SYSTEM.PAS не компилировался. В этой затравке и были описаны все перегрузки. Затравка не была документирована. Вроде никто не брался за её реверс-инжиниринг, чтобы добавить свои перегрузки. Все, кому нужна была перегрузка, создали свои компиляторы.

        Кстати, а где ещё такое бывает?
        Ответить
    • Как отучиться миксить двойные и одинарные кавычки, и перейти на что-то одно?
      Ответить
      • Перейти на язык программирования, в котором один тип кавычек.
        Ответить
      • Переходи на одинарные, они нигде не тормозят.
        Ответить
        • {'И', 'м', 'е', 'н', 'н', 'о', ' ', 'п', 'о', 'э', 'т', 'о', 'м', 'у', ' ', 'я', ' ', 'з', 'а', ' ', '"', 'C', '"', '.'}
          Ответить
      • Например джаббаскрипте есть соглашение: литералы с кодом писать в одинарных кавычках, а с текстом для человеков в двойных.

        А в петоне я обычно стараюсь юзать одинарные, мне лень жмякать shift. Двойные использую только если вдруг в строке есть одинарные ковыччки, потому что строки с экранированием выглядят некрасиво.
        Ответить
      • настрой линтер какойто
        Ответить
        • Для анскильных питушков, которые не включают мозг. Я вообще пешу в виме с дефолтными настройками.
          Ответить
    • <open file '<stderr>', mode 'w' at 0x00A6D0D0> Pol

      Всё выводится. Ну и нехер на двойке писать.
      Ответить
      • Перевёл на тройку, проверь:
        import sys
        print (sys.stderr, "Pol chasa ne mog ponyat kakoko huya nichego ne vivoditsya")

        Перед текстом выводит:
        <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
        Ответить
        • он выводит repr файла вместе с остальными параметрами, и в двойке так же.

          Тогда я вообще не понил, чего у него там не выводится.
          Ответить
    • Может быть, вы имели ввиду
      print >> sys.stderr, "Pol chasa ne mog ponyat kakoko huya nichego ne vivoditsya"
      Какой замечатьелный синтакс )))
      Ответить
    • Приведите реальный пример, когда это может вызвать непонимание.
      Ответить
      • http://govnokod.ru/26379
        Ответить
        • Я буду долго тебя истязать. Температура под 40 будет сменяться лихорадкой, у тебя появится жидкий стул и кашель.
          Ответить

    Добавить комментарий