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

    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
    class list(list):
        def __call__(self, *args):
            if len(args) == 0:
                return self[:]
            res = []
            for i in args:
                if type(i) == int:
                    res.append(self[i])
                else:
                    res.append(self(*i) if len(i) != 1 else [[[self(0)]]])
            return res
    
    a = list(map(lambda x: x * x, range(10)))
    
    print(a(1,0,(6,6,(5,4,3,(0)),6),3,2,(),8,))

    Ебат, как добавить список с одним елементом?
    https://ideone.com/Fik3PF

    Запостил: Rooster, 31 Января 2019

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

    • СЕО: ПИТОН—–-–—ШОВНО!
      Ответить
    • наркоман, что ты хочешь?
      Ответить
    • Бля, встроенный класс заменить нельзя, и метод __call__ у него заменить тоже. Походу надо свой класс. А я хотел чтоб [] создавали мой list :(((
      Ответить
    • > список с одним элементом
      (42,)
      Ответить
      • это не список
        это кортеж
        Ответить
        • Похуй. Он их перепутал, скорее всего.
          Ответить
          • за перепутывание кортежа со списком в сообществе питона дают смузи из гнилой брюквы
            Ответить
            • Я перепутал кортеж из одного елмента и выражение в скопках.
              Ответить
              • это питон
                в нем надо быть очень осторожным

                именно по этому я за
                Ответить
                • Кстати, когда фрактал питонодизайна выложишь?
                  Ответить
                  • ректал
                    Ответить
                  • У меня нету такой истерической ненависти к питону как та, что я испытываю к пхп, хотя в питоне довольно много неконсистентности

                    Я вообще в целом не считаю что на скриптовых языках надо писать сложные программы. Скриптовые языки для скриптов, для glue code. А люди напишут на нем социальную сеть, а потом ябуца в жопу
                    Ответить
                    • Интересно, а фекал крестодизайна получится размером со Стандарт?
                      Ответить
                      • Есть два вида языков: на одних хуи др никто не пишет, а другие все критикуют. (c) Бйорне Страуструуп.

                        Плюсы и так все обсирают постоянно, любой плюсовик знает что плюсы говно, а вот скриптеры обычно фанбои того корявого говноинструмента, на котором они зарабатывают свой доширак

                        Приходица открывать им глазы
                        Ответить
                  • А ты хотел бы почитать?
                    Ответить
                    • Вай нот?
                      Ответить
                      • Там писанины будет не меньше чем для рнр, хотелось бы знать - это кому-то интересно будет? Или все скажут, что Сёма неосилятор и что питон прекрасен.
                        Ответить
                        • Скриптовые языки не могут быть прекрасными.
                          Ответить
                          • Кроме Apple Script конечно
                            -- Dialog
                            set dialogReply to display dialog "Dialog Text" ¬
                            	default answer "Text Answer" ¬
                            	hidden answer false ¬
                            	buttons {"Skip", "Okay", "Cancel"} ¬
                            	default button "Okay" ¬
                            	cancel button "Skip" ¬
                            	with title "Dialog Window Title" ¬
                            	with icon note ¬
                            	giving up after 15
                            Ответить
                          • А как же S" Forth"?
                            Ответить
                      • какая у тебя циферка?
                        1
                        C programmer (fake C++ programmer) : They just know stdio.h and C syntax. However, it is possible to code C++ with only C syntax.

                        2
                        C with classes : They can use classes, overload, and virtual methods. However, using normal virtual methods in C++ have bad performance in speed.(vtable lookup)

                        3
                        C++ std programmer : They can use the std library of C++. e.g. vector, algorithm, iterator, string

                        4
                        C++ generics programmer : Able to make generics class and interface your original class to std.

                        5
                        Const programmer : read only memory programming makes efficient memory management

                        6
                        C++11er : lambdas, shared pointer, threads, move semantics
                        Boost User : Using boost to do modern C++ programming in old version of C++

                        7
                        Compile time programmer : Using templates & constexpr to make fast & memory efficient programming. Have great knowledge about compiler.

                        8
                        C++ specification hacker : Know various version of C++ specification and the condition of undefined behavior

                        9
                        C++ commitee member : Who makes C++. They are great hacker. You can find them in twitter.
                        Ответить
                        • Судя по его гитхабу, не меньше 7.
                          Ответить
                        • Что-то между 7 и 8.

                          Но работаю где-то на 6, иначе как это потом читать?
                          Ответить
                        • Питушня какая-то. Нужно номера как степени двойки, чтобы определять своё число побитовым или.
                          Ответить
                          • Или как в «Барсике»: с шагом 10, чтобы потом добавлять промежуточные номера.
                            Ответить
        • «Какой картёж!» –— подумала Алиса. Это слово звучало как то не так, но она не знала, как поправить.
          Ответить
      • Эт куртеж, у меня письки.

        Что сьранно, hui.append([2]) добавляет список с одним елементом, а в моём коде вынимает всё нахуй
        Ответить
        • не надо так

          добавляй в письку школяр и все будет хорошо
          если ты суваешь писок в писок то и будет у тебя писька писек

          картёж вообще тут не причем
          Ответить
      • Вообще мне нужен результат [1, 0, [36, 36, [25, 16, 9, [0]], 36], 9, 4, [0, 1, 4, 9, 16, 25, 36, 49, 64, 81], 64]
        Ответить
        • а, извини
          result = [1, 0, [36, 36, [25, 16, 9, [0]], 36], 9, 4, [0, 1, 4, 9, 16, 25, 36, 49, 64, 81], 64]
          Ответить
      • И правла, я зопутался, надо ьыло не (0) а (0,)

        А в 10-й строчке res.append(self(*i))

        Сую неправильные данные и ошиппку ищу не ту :D
        Ответить
        • (0) это 0
          (0,) это тупла:
          https://avatars.mds.yandex.net/get-mpic/906397/img_id6763929076212377551.jpeg/9hq
          Ответить
    • Простите, я обкакался.
      Ответить
      • ничего страшного, у птиц это постоянно бывает
        у вас же нет сфинктера
        Ответить
    • Вообще, у встроенных типов можно метходы заменять?
      Ответить
      • can't set attributes of built-in/extension type 'list'
        Ответить
        • Так тоже не получается:
          >>> list.__dict__["__call__"] = myslice
          Traceback (most recent call last):
            File "<stdin>", line 1, in <module>
          TypeError: 'dict_proxy' object does not support item assignment
          Ответить
          • Именно по этому я за руби
            class Array
              def length
                 42
               end
            end
            
            p [1,2,3].length #42


            Я так же за lua
            local fucker = {__len=function() return 42 end}
            
            local array = {1,2,3}
            
            print(#array) --3
            setmetatable(array, fucker)
            print(#array) --42
            Ответить
            • А я за «Хрюпескарь»: в нём можно создавать хелперы для любого типа данных.

              Можно создать хелпер для чужого класса. Он будет выглядеть так, как будто мы в класс добавили метод:
              https://www.freepascal.org/docs-html/current/ref/refse61.html

              Можно создать хелпер для простых типов. Даже для целого питуха:
              https://www.freepascal.org/docs-html/current/ref/refse63.html
              Ответить
              • ахахха, да это же экстеншен методы из C# и Kotlin
                или категории из ObjC

                И уж конечно во все классы (особенно в руби) их можно добавлять
                Ответить
                • «Руби» совершенно не удивляет, это же «динамический» язык.

                  В «C#» и в «Java» (про «Кокококотлин» не скажу, я его пока не трогал) всё является объектом, даже небо, даже Аллах (помним прикол с порчей кэша мелких чисел?), поэтому экстеншен методы в теории возможны для всего.

                  В «ObjC» нет методов в классическом для статически типизированных языков смысле. Там у объекта есть диспетчер, кокококоторый принимает сообщения.

                  А вот добавление подобных расширений в язык совершенно другой категории немного неожиданно. Хотя по сути это же всего лишь синтаксический сахар: невиртуальный метод —– это просто функция, в кококоторую первым аргументом неявно передаётся this/self.
                  Ответить
            • В Луа ты только у одного екземпляра метод заменил.
              Ответить
              • С глобальными можно и все экзепляры, там не сложно. А вот локальные - хз. Не пробовал.
                Ответить

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