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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    import sys
    
    
    def do_govno(govno: str) -> None:
        pass
    
    
    def main() -> int:
        if len(sys.argv) != 2:
            print(f'Usage: {sys.argv[0]} <govno>')
            return EXIT_FAILURE
        
        govno = sys.argv[1]
        do_govno(govno)
        
        return EXIT_SUCCESS
    
    
    if __name__ == '__main__':
        exit_code = main()
        sys.exit(exit_code)

    Запостил: ISO, 13 Февраля 2024

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

    • EXIT_SUCCESS = 0
      EXIT_FAILURE = 1


      Забыл.
      Ответить
      • Говно в том, что в Позиксе и в ДОС код разврата ноль хороший, а не ноль — плохой?
        Ответить
      • нахуя ты argparse изобрел?
        Ответить
        • Где тут parse?
          Ответить
          • вот эту хуйню (которая кстати неправальная: писать ошибки надо в stderr) не нужно писать вручную
            if len(sys.argv) != 2:
                    print(f'Usage: {sys.argv[0]} <govno>')
                    return EXIT_FAILURE
            Ответить
    • а зачем так сложно, кстати?

      Зачем main и __main__?

      Скриптушня от слова "просто" же, а церемоний развели больше чем на жабе
      Ответить
      • Как я понял, __main__ для проверки того, что скрипт вызывается как самостоятельный, а не как библиотека. А в main() код убрали на всякий случай для возможности его использования как библиотечной функции.
        Ответить
        • >>__main__ для проверки того, что скрипт вызывается как самостоятельный, а не как библиотека. А

          а там есть библиотечные функции? кто-то типа захочет подключить его и заюзать do_govno?

          >А в main() код убрали на всякий случай для возможности его использования как библиотечной функции.

          и main заюзать?

          Ну тогда предлагаю не останавливаться, и сделать `lib/govno.py` и `main.py`, не?
          Ответить
          • Всегда так делаю.
            Ответить
            • Ну то-есть смотрите:

              Мы сначала берём скриптовый язык (скриптовый -- расчитанный изначально на простые, маленькие программы) а потом начинаем городить из него какую-то пафосную хуиту, где вот реально только `public static final void main` не хватает.

              Зачем?
              Ответить
              • Культ карго.

                Зачем туземцы вязали самолёты и диспетчерские будки из соломы?
                Ответить
                • Ну это в PHP так.

                  Типа "раз в джаве есть 'new' -- то и нам надо"
                  "Раз в джаве есть 'public' то и нам надо"
                  "Раз в С++ есть стрелочка -- то и нам надо"

                  Неужели и питон такой же?
                  Ответить
                  • Давайте сойдем с ума окончательно:
                    # Граматное ООП"!!
                    class IUser(ABC):
                        @abc.abstractmethod
                        @property
                        def login(self) -> str:
                            pass
                    
                        @abc.abstractmethod
                        @property
                        def id(self) -> int:
                            pass
                    
                    
                    class UserImpl(IUser):
                        def __init__(self, login: str, id: int):
                            self.__id = id
                            self.__login = login
                    
                        @property
                        def login(self) -> str:
                            return self.__login
                    
                        @property
                        def id(self) -> int:
                            return self.__id
                    
                    
                    class UserFactory:
                        @staticmethod
                        def create_user(login: str, id: int) -> IUser:
                            return UserImpl(login, id)
                    Ответить
                  • Тебя и meine не разбудил. А потом __meine__ не разбудил.
                    Ответить
                    • if __name__ == '__mein__':
                          sys.exit(kampf())
                      Ответить
                      • main camp
                        Ответить
                        • mailchimp.

                          кууик
                          Ответить
                          • шимпы злые и не работящие
                            https://www.youtube.com/watch?v=eqbclCNRiPo
                            Ответить
                            • Владелец видео запретил его просмотр в вашей стране.

                              Вот пидор. Да чтобы его гориллы выебали!
                              Ответить
                              • теперь только сенкевича смотреть
                                https://inv.vern.cc/watch?v=RRg0MK_kAKs
                                Ответить
                            • >негры злые и не работящие

                              гологуб, ну
                              Ответить
                              • негры это другое
                                https://3.bp.blogspot.com/_P3kdvsDiMzA/SE4cJVyd54I/AAAAAAAAAVY/4dlTD-t-JNI/s1600/p22Racism-full.jpg
                                Ответить
    • А зачем вы пишете на змее так же, как на си?
      Ответить
      • Потому что на Си писать, как на змее, труднее.
        Ответить
        • почему не писать на си как на си?

          Блин, возьмите "Go": по вербозности будет не хуже вот этово вашего говна, а по удобству и перформансу лучше
          Ответить
          • // Гляди, питушок
            package main
            
            import (
            	"fmt"
            	"os"
            )
            
            func doAll(arg string) {
            	_, _ = fmt.Fprintf(os.Stdout, "Hoi %s", arg)
            }
            
            func main() {
            	if len(os.Args) < 2 {
            		_, _ = fmt.Fprintf(os.Stderr, "usage: %s [foo]\n", os.Args[0])
            		os.Exit(1)
            	}
            	doAll(os.Args[1])
            }


            Тоже самое, но намного чище, быстрее, и не требует рантайма
            Ответить
            • А что за морзянка «_, _»? fmt.Fprintf возвращает два значения, которые игнорируются?
              Ответить
              • Ага.
                https://pkg.go.dev/fmt#Fprint
                func Fprint(w io.Writer, a ...any) (n int, err error)


                Кол-во записанных байт, как можно догадаться, и ошибку.
                Ну мне похуй на ошибку (хотя конечно нормальный гофер бы так не сделал)

                Ну вот кстати обработка ошибок мне больше нравится в рустне.
                Ответить
                • Это так смешно: компилятор проверяет, что ты не игнорируешь ошибку, но он не может это сделать достоверно. Поэтому го-мартышки вынуждены писать if err ! = nil по всему коду.
                  Ответить
                  • Да, способ проверки пидорский.

                    Но с другой стороны он хотя-бы есть! В других языках нет и этого.
                    Ответить
                    • Я за рустнявый резалт. Это юнион из резалта и ошибки. его можно маттерн патчить!
                      Ответить
                • > хотя конечно нормальный гофер бы так не сделал
                  > хотя конечно нормальный гофер
                  > нормальный гофер

                  что?
                  Ответить
                  • Послушайте,

                    "Go" был сделан, чтобы решить следующие задачи:

                    1. Любая макака должна уметь на нём писать
                    2. Любая макака не должна иметь возможность написать ОЧЕНЬ плохой код, который никто не поймет
                    3. Любая макака должна иметь возможность написать код, который использует все доступные ядра
                    4. Любая макака должна иметь возможность запустить приложение, которое написала другая макака
                    5. Желательно, чтобы всё это не очень сильно тормозило

                    Вроде как со своей задачей он справился, не?
                    Ответить
              • Да пошел ты на_, _ и _! _ _чий!
                Ответить
            • Программа импортирует `kernel32.dll`, а больше ничего. На прыще, соответственно, вообще not a dynamic executable.

              Зато весит она без малого 2 метра

              Хорошо-ли это?
              Ответить
    • Привет,

      Это ежедневное напоминание о том, что Brendan Eich и Ryan Dahl должны вечно вариться в кипящем масле у сатанаила под хвостом
      > 018 == '018'
      true
      > 017 == '017'
      false
      Ответить
      • Все, кто придумали ведущий ноль использовать как символ восьмеричной системы, должны гореть в аду.

        Почему в сишке шестнадцатеричные начинаются с 0x, в гцц двоичные с 0b, так что с десятичным никак не спутаешь, а восьмеричные записываются через жопу? Почему нельзя было сделать по аналогии 0o? Опять юниксобляди один символ экономили, как в creat?
        Ответить
      • &gt; 017
        15
        &gt; 018
        18
        &gt; 019
        19
        &gt; 020
        16
        
        &gt; 019 &gt; 020
        true


        Какой пиздец )))
        Ответить
        • Теперь Python:

          &gt;&gt; 020
          SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
          Ответить
          • PHP:

            php -r 'echo 019;'
            
            Parse error: Invalid numeric literal in Command line code on line 1
            Ответить
            • В Ruby сделали, как в PHP (ведущий ноль для записи восьмеричных, цифры 8 и 9 являются ошибкой).

              Lua:
              > 019
              19
              > 020
              20
              Ответить

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