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

    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
    Building on that example, the new syntax for function definitions would look like:
    
    def name(positional_only_parameters, /, positional_or_keyword_parameters,
             *, keyword_only_parameters):
    
    Therefore the following would be valid function definitions:
    
    def name(p1, p2, /, p_or_kw, *, kw):
    def name(p1, p2=None, /, p_or_kw=None, *, kw):
    def name(p1, p2=None, /, *, kw):
    def name(p1, p2=None, /):
    def name(p1, p2, /, p_or_kw):

    https://www.python.org/dev/peps/pep-0570

    Запостил: 3.14159265, 07 Ноября 2019

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

    • Питуль, пока ты тут, скажи свой email для экстренной связи.
      Ответить
    • Это серьёзно?

      Сначала мы вводим в язык именованные аргументы.
      Затем, через N версий чешем затылок и делаем новую синтаксическую питушню чтобы с ними бороться.
      Ответить
      • В перле нет именованнных аргументов
        И в руби тоже можно сказать, что нет

        Импенно потому я за шел, где их тоже нет

        Зато в обжси все аргументы именнованне
        Именно потому я за обжси
        Ответить
        • Ерунду написал.

          Именованные аргументы можно перечислять в произвольном порядке, попробуй так сделать в obj-c.
          Ответить
          • Ерунду написал.

            Именованные аргументы можно перечислять только после неименованных
            Ответить
            • Когда нет мозгов, то можно и покривляться, согласен.
              Ответить
              • Тебе видней, что в таком случае делать.
                Ответить
                • Бомбит от того, шо не знаешь обжектив-сей?
                  Ответить
                  • Бомбит от того, шо попытался выебнуться, и обосрался?
                    Ответить
                    • Давай лучше пример сигнатуры функции в obj-c с именованными параметрами, порядок передачи которых в функцию при вызове не имеет значения.

                      Остальные вскукареки оставь для друзей, пожалуйста
                      Ответить
                      • Причем тут порядок, дурачок?
                        На кой хуй ты его вообще сюда принес?

                        Смысл именованных параметров в том, чтоб понимать какой параметр какое значение имеет.
                        Ответить
                        • Предлагаю тебе перестать долбиться в глаза, прочитать первый ответ guest8 в этой ветке и понять, что дурачок твой папа, а в обжективе нет никаких "именованных" параметров.

                          Ты хоть вообще понимаешь разницу между сигнатурой функции и типом данных "словарь"? А то шото не похоже
                          Ответить
                          • Лол, причем тут вообще словарь?

                            Именованные параметры позволяют не писать
                            doAll(true, true, true, false, true, 42);

                            А вместо этого писать
                            doAll(useShovel=true, useHands=true, iq=42);


                            Языки, где такое есть:
                            * Python
                            * ObjC (тут нет НЕ именованных аргументов, в отличие от других)
                            *Kotlin

                            Языки, где такого нет:
                            * Java (но можно эмулировать объектом)
                            * JavaScript (но можно эмулировать объектом)
                            * C (но можно эмулировать структурой)

                            Языки, где такого нет, но почти всегда эмулируется ссылкой на хеш/дикт

                            * Ruby (даже сахар для этого есть)
                            * Perl (частично)


                            Менять порядок указанных аргументов в ObjC действительно нельзя (во всех остальных приведенных тут языках -- можно), но дело-то не в этом
                            Ответить
                            • Но можно эмулировать комментарием ))
                              Ответить
                              • Именно. Вот пример от M$
                                // Start the child process. 
                                    if( !CreateProcess( NULL,   // No module name (use command line)
                                        argv[1],        // Command line
                                        NULL,           // Process handle not inheritable
                                        NULL,           // Thread handle not inheritable
                                        FALSE,          // Set handle inheritance to FALSE
                                        0,              // No creation flags
                                        NULL,           // Use parent's environment block
                                        NULL,           // Use parent's starting directory 
                                        &si,            // Pointer to STARTUPINFO structure
                                        &pi )           // Pointer to PROCESS_INFORMATION structure
                                    ) 
                                    {
                                        printf( "CreateProcess failed (%d).\n", GetLastError() );
                                        return;
                                    }
                                Ответить
                              • При этом никакой гарантии соответствии комментария реальности нету.
                                Ответить
                                • Но можно написать проверку через std::embed
                                  Ответить
                                  • Через std::embed и __LINE__ походу можно даже что-нибудь типа eval() пильнуть...
                                    Ответить
                                  • Можно написать через std::embed компил-тайм статический анализатор, который к тому же сам себя анализирует
                                    Ответить
                            • Просто погугли, что такое kwargs в пистоне и существует ли в ObjC и Свифте перегрузка методов.

                              У тебя почему-то в голове каша из топора и ты думаешь, что сигнатура функции это то же самое, как если функция умеет принять в себя словарь.
                              Ответить
                            • Ну и контрольный выстрел. Вот есть в UIKit'е метод
                              viewWillTransitionToSize:withTransitionCoordinator:
                              Выведешь мне из сигнатуры именованные параметры?
                              Ответить
                              • конечно
                                вот сигнатура
                                - (void)viewWillTransitionToSize:(CGSize)size 
                                       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator;


                                у нее два параметра
                                size типа CGSize
                                и coordinator типа id<UIViewControllerTransitionCoordinator >
                                Ответить
            • Но между собой у них порядок произвольный.
              Ответить
    • Анскильный питух не осилил сишку и пошёл кушать говнецо. Брось его пока не поздно, питух.
      Ответить
      • Ты анскильная заедушная пародия на царя, иди смотри настоящие треды с участием царя на ЛОР, например https://www.linux.org.ru/forum/development/15334456 (смотреть в удаленные)
        Ответить
        • "Эффективность любого жита для недоязычков - мусор. Просто для интела этим можно пренебречь, да и производительности от недоязычков никто не ждёт."
          Это?

          Царь перешёл со слова "питух" на "птушник"?

          P.S. Я тебя по овотарке узнал, j123123.
          Ответить
          • «Птушник» — это «птичник» по-белорусски?
            Ответить
            • Если царь скажет "анскильный питушок", то его сразу спалят :D
              Ответить
            • Только сейчас дошло, что это "ПТУшник". Какая деформация )))
              Ответить
              • Я в декабре в очередной раз IRL увидел «Песняров» (которые БГА; знаю, что их сейчас много):
                https://yadi.sk/i/5Pinq_euViXGYw
                Ответить
                • Юади ск?
                  Ответить
                • Всегда удивляли люди, снимающее такое на телефон. Ты что, это всё пересматривать потом будешь?
                  Ответить
                  • Не буду. Конкретно этот отрывок я снял специально, чтобы насрать на «Говнокоде».
                    Ответить
                    • Аа. Ну в следующий раз говори голосом "специально для «Говнокода»" ))
                      Ответить
                • ВГА БГА ВГИ
                  Ответить
                  • ЕГА ВГА БГИ же
                    Ответить
                    • Сразу видно, что ты знаком с продуктами «Борланда».

                      Кстати, я знаю две версии формата BGI. У v2 была сигнатура «pk» (расшифровывалось как Philippe Kahn), у v3 — сигнатура «FBGD» (GD от «graphics driver»). Библиотека для сишки и для крестов понимала только v2, библиотека для трупопаскаля — оба формата.
                      Ответить
            • Антон Птушкин
              Ответить
          • Вся суть там в удаленных. Например вот:
            /////

            Обдристался и давай блеять херню?

            > Выходит в теме не шаришь, но рассуждаешь с умным видом? Это касается всех твоих сообщений?

            Бездарность, давай попроще. Вот ты бездарное говно с помойки. Имеет ли разницу то, сколько раз ты обмазываешься говном? Нет. Я сказал, что ты в говне - ты в говне. Скулёжь о том, что на самом деле ты в говне 2 раза - ничего не меняет.

            Разбираться - это не значит знать нюансы существования каждого отребья.

            > 10 относится не к 25, а к 23, а вот 12 относиться к 25, если ты понимаешь (сомневаюсь) о чём я.

            Бездарность, тебе уже сообщил - абсолютно неважно сколько там. 23/24/25 - это всё одно и то же. Точно так же как и неважно сколько там. 10 или 12 - это одно и тоже, бездарность тупорылая.

            Мой тезис сообщал, что уровень параллелизма там никакущий. Я это доказал. Теперь ты в говне и начинаешь блеять «ну ты то сказал 10, а в новом то 12» - да это ничего не меняет, огрызок. Я даже там не пытался написать десять - я пытался написать в районе десятка, но написав десяток я даже не ошибся.

            В штеудах так же не 10, но я говорю и примерном равенстве. Это очевидно любому не клоуны из интернета. Хотя даже клоунам это очевидно.
            /////


            ////
            Ну давай, отребье. Формулируй проблемы и доказывай их наличие. Бегом, говно. В целом твоя мотивация очевидно. Бездарная низшая форма жизни при встрече с высшей ломается и начинает отрицать происходящее. Вы всё врети, тебя не существует, ведь я высшая форма жизни. Нет, амёба - ты именно амёба. А «любой здоровый человек» - это просто «бездарный биомусор», которое твоё мусорное псевдосознание переименовало во имя утешения самого себя, убогого.
            ////
            Ответить
            • ////
              > Побежал искать оправдание. Если бы ты читал вики, то ты бы написал 24, а ты написал 25, а 25 это не про симд. Какой хитренький.

              Бездарный биомусор решило меня поймать. Нет, шлюха, меня не интересует сколько там говна. 24 или 25. К тому же, давай опять в говно, шлюха.

              Windows 8 на Эльбрус-8С - отсюда взялись 25, ведь именно оттуда я пришел. Т.е. взял это не я. В говно, мразь.

              > Опять таки, если бы ты читал вики, то ты бы написал 12, а не 10.

              Опять падаль пытается врать. Шлюха, я нигде не писал про какую-то википедию. Я писал что?

              > Уровень параллелизма - там никакующий судя по докам. Все эти маня-25 инструкций - это с учётом симдов. Хотя, вроде как, мы это обсуждали. Т.е. реальный уровень параллелизма - там десяток. Как у бека интела.

              Единственные потуги, где кто-то рассказывать при мне про 25 инструкций/операций было именно в контексте попытки впарить симды. Это зафиксировано. Сколько там этого говна 24 или 25 - меня волновать не должно.

              Откуда взялись 25 - я сообщил. То, что такие попытки были я доказал путём цитирования википедии. Я нигде не говорил, шлюха, что я ссылался на неё когда говорил о 25/десятке. Это лишь пример подсчёта с симдами.

              Я сказал про 10, ты мне высрал десять. То что там где-то стало 12 - это ничего не меняет. 12 эквивалентно 10 - это нисколько.

              >В теме никто не писал про 25, ты первый. Не надо юлить. Узбагойся.

              В говно, мразь. Рыдать.
              ///
              Ответить
            • Какой батхёрт )))
              Ответить
          • Ну по сути-то он прав
            Ответить
        • >Допустим, интел как циск попросту не может быть нормальных суперскаляром


          фейл же


          интел давно уже риск под капотом
          Ответить
          • Протокол загрузки микрокода и RISC-инструкции документированы?
            Ответить
            • нет кончно, а что это меняет?
              Ответить
              • Значит, ты не сможешь привести реальный пример, как на «Интеле» использовать RISC-инструкции из своей программы напрямую?
                Ответить
                • Икарус, что с тобой?

                  Интеловский декодер превращает твою высокоуровневую питушню на языке ISA (всякие пуши и попы) в микрокоды, работающие с резервными станциями и прочими Томасулами, ты пытаешься это оспорить?
                  Ответить
                  • Нет.

                    Начиная с P6, можно считать, что ты пользуешься эмулятором CISC-процессора. Так?

                    А теперь попробуем найти пример ещё какого-нибудь эмулятора. Вот, например, ты запустил эмулятор «Спектрума». Эмулятор превращает инструкции Z80 в микрокоды сниппеты, написанные в опкодах «Интела». Спектрумовской игрушке доступны только опкоды Z80, о железном процессоре она ничего не знает. Всё верно?
                    Ответить
                    • Все верно, но причем тут высер про невозможность суперскалярности?

                      Вспомни нетбёрст в пэ четыре, этоже просто пиздец какой суперскаляр, каждый чих и пук делался отдельно, конвеер был из дцати шагов
                      Ответить
                      • Да, тезис про невозможность суперскалярности не подтверждён.

                        Тут вообще придётся определить кучу терминов, перед тем, как начинать спор.

                        Что такое суперскалярность? Наивное определение: возможность выполнять операции с чем-то, что сложнее скаляра.

                        В архитектуре VLIW всё понятно, там программист может явно указать, что нужно параллельно выполнить несколько разных вычислений. Например, «Итаниум» позволял явно указать три операции с разными источниками данных.

                        У x86 сложнее. Во-первых, есть скрытый суперскаляр, недоступный напрямую программисту: это линии конвейера U и V на первых «Пентиумах», которые работали параллельно, и их развитие в последующих архитектурах. Во-вторых, есть открытый суперскаляр — это SIMD. Да, Царь скажет, что SIMD — это костыль, ибо только данных много, а операция одна.

                        Почему в воображении Царя именно RISC связан с суперскаляром, моим очам не видно. RISC и CISC — это по сути всего лишь формат инструкций.

                        Может быть, Царь путает RISC и VLIW?

                        Кстати, почему «Core» / «Core 2» основаны не на «Нетбёрсте», а на других принципах?
                        Ответить
                        • > Царь путает

                          Скорее всего ты птушник анскильный
                          Ответить
                        • Ассалям-алейкум, брат!

                          Флин (мир ему) и его таксономия учит нас, что есть четыре стула:

                          SISD
                          SIMD
                          MISD
                          MIMD

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

                          Интел стал называть себя суперскаляром во времена P6, когда внутренняя архитектура перешла на RISC, и именно это позвлило одновременно выполнять микрокоманды в параллель.

                          Полноценных SIMD тогда еще не было.


                          Нетбёрст обосрался (емнип) по причине выских требований к питанию и (соответственно) высокой выделяемой мощности. Гиганский конвеер работал на безумных (3Ghz) скоростях часто вообще вхолостую (с перманентно обсырающимся бранч предикшеном).

                          Алзо, программисты осилили параллельность, и увеличенне числа ядер оказаось более верным способом для поднятия перформанса, чем гонка гигагерц.
                          Ответить
                  • Сразу видно, что он анскильный
                    Ответить
                    • Именно поэтому я за «PHP».
                      Ответить
                      • а я за вот https://tjide.sourceforge.io/

                        наконец нормальный иде для джавы сделали
                        Ответить
                        • Turbo Java! Класс!
                          Ответить
                        • Красиво. Даже «Турбо Вижн» портировали. Только тормозит. Тормозит открытие диалоговых окон, даже курсор тормозит. Сразу видно, что написано на «Java».
                          Ответить
                          • попробуй сделать хип в 16гигабайт, должно стать шустрее
                            Ответить
                          • > турбо джава
                            > тормозит
                            Ответить
                            • Джаватормозит же.

                              Кто помнит, чем bp отличался от tp?
                              Ответить
                              • Я вот думаю, что быстрее, Java или JavaScript? По идее JavaScript медленнее, он же «Script».
                                Ответить
                                • Конечно! Он же компилируется при каждой загрузке, а Java уже скомпилирована в байткод.
                                  Ответить
                                  • Groovy можно загружать в рантнайме, но она тоже прежде компилируется (просто комлпириованные файлы никуда не сохраняются).

                                    Кстати, компилируется и JS под виртуальную машину V8, а потом еще и джитися (впрочем, как и Java)
                                    Ответить
                                    • String text = "class Bar { static def foo(x) {x*.toUpperCase().toArray()}}";
                                      Class<?> clz = new GroovyClassLoader(Foo.class.getClassLoader()).parseClass(text);
                                      Object args1 = new String[]{"a", "b"};
                                      Object[] as = (Object[]) clz.getMethod("foo", Object.class).invoke(null, args1);
                                              for (Object a : as) {
                                                  System.out.println(a);
                                              }


                                      зацените интероп, кстати
                                      Ответить
                                    • JS сейчас уже во всех движках (не только в V8) компилируется в байткод, а в некоторых ещё и джитится, только этот байткод не стандартизирован (в отличие от байткода для JVM, например).

                                      Проблема в том, что этот байткод никуда не сохраняется. Это каждый петух знает.
                                      Ответить
                                      • Вообще в каких языках ничего не компилируется?
                                        shell script? VBS?

                                        >Проблема в том, что этот байткод никуда не сохраняется. Питон генерирует "пук" файлы, именно потому я за путхон.

                                        Кстати, груви можно и копульнуть в .class файл явно, и сохранить его:)

                                        (пару недель я буду всех заебвывать грувями, потом попустит)
                                        Ответить
                                      • Каждый царь знает, что такой байткод сосёт у нативного кода, и никакой джит не поможет.
                                        Ответить
                                        • У скриптовых языков обычно флешрояль:
                                          1. Код ненативный.
                                          2. Динамическая тупизация.
                                          3. gc.
                                          Ответить
                                          • Мне поебать какой код в "PHP", и есть ли там "gc" (ведь после того, как запрос отработал, память освобождается автоматически).
                                            Ответить
                                  • Это каждый петух знает.
                                    Ответить
                              • BP называлась седьмая версия TP.

                                Иногда репаки «BP 7.0», в которые клали не весь софт сразу, а только для DOS или только для Windows, называли TP.

                                Кстати, в шестой версии утилиты и библиотеки для разных платформ были отдельно: «TP 6.0» назывался компилятор для DOS, а компилятор для Windows назывался «TP for Windows 1.0» (следующих версий TPW не было, потому что в седьмой версии все платформы решили объединить).

                                А ещё в комплекте «BP 7.0» были bpw.exe, bp.exe и turbo.exe — IDE соответственно для Windows, для защищённого режима DOS и для реального режима DOS (имеется в виду режим/ОС хоста, каждый из экзешников умел создавать программы для всех трёх платформ), а также bpc.exe и tpc.exe — консольные компиляторы соответственно для защищённого режима DOS и для реального (и опять же это про хост; каждый компилятор умел собирать программы для всех трёх платформ). Консольного компилятора для Windows не было, потому что в Windows 3.x не было консоли.

                                Между bp.exe и turbo.exe, а также между bpc.exe и tpc.exe не было никакой функциональной разницы, кроме того, что первым требовалось переключаться в защищённый режим процессора (они могли стартовать в реальном и переключать режим сами либо в V86 и использовать DPMI для доступа к сегментам защищённого режима), поэтому теоретически им было доступно больше памяти без анскильных оверлеев, XMS, EMS, которые тормозят.
                                Ответить
        • https://www.linux.org.ru/forum/development/15380779?cid=15384081 вот кстати Царь детектед. Попробую с ним там культурно пообщаться, чисто как социальный эксперимент
          Ответить
          • > Система типов у С++ самая развитая в мире в принципе.

            Бггг.
            Ответить
            • Царь ёбу дал?
              Ответить
            • > самая развитая
              Самая хитровыебанная.
              Ответить
            • >А по поводу потуг - это ненужно пруфцевать. Нельзя доказать то, что что-то самое сильное. Я лишь это декларирую, а если ты с этим не согласен - показывай другого сильного. И уже тогда, после сравнения, будет один победитель. Очевидно, что после первого прокукарека ты объявляешься питухом и все твои потуги стоят ноль. Это нужно для того, что-бы ты не тратил время заспамом херни.

              Нихуя не понятно, но очень интересно
              Ответить
              • Вореции какие-то пошли.

                Очевидно, что если кто-то утверждает "типизация в хуйнянейм - самая развитая в мире среди языков", доказать это можно, пруфом должно быть сравнение этой хуйни со всеми прочими существующими в мире языками.
                Ответить
                • Ну он же сказал явно - "самая развитая в мире в принципе". Пусть принципом поделится, ему жалко что ли?
                  Ответить
                  • Принцип прост - раз царь сказал что самая развитая, значит так оно и есть. А если кто думает иначе - тот просто птушник, клоун, питух и анскиллябра.
                    Ответить
                    • Царю надо дать пописять на окамле, потом пусть он расскажет, где какая типизация
                      Ответить
                      • Или хотя бы на языке Ада:
                        https://learn.adacore.com/courses/intro-to-ada/chapters/contracts.html
                        Ответить
                        • Да даже на Ko-ко-ко.

                          Паттер матчинг
                          when (ptushka) {
                            is Kurochka -> ptushka.snestiJaichko()
                            is Piven -> assert ptushka.grebeshok.color == Colors.Zolotoy
                          }


                          Смарт каст
                          if (ptushka is Soroka && ptushka.beloboka) {
                             ptushka.kashuVarit()
                          }
                          Ответить
                          • Можно не ограничиваться полумерами. Пусть попишет на «Haskell».
                            Ответить
                            • В любом случае Царь всё это назовёт анскильной питушнёй.

                              Он даже паскалевские массивы ругал за то, что в них элементы можно нумеровать не с нуля (хотя на том же «Интеле» адресация в стиле scale-index-base появилась уже на 80386, так что все эти смещения для процессора бесплатны).
                              Ответить
                          • )))
                            Ответить
          • Ты анскильно-заедушный пранкер Царя. Я уже сообщил Царю, что за ним следят.
            Ответить
          • Сообщение 15384081 в топике В чем отличие процедурного программирования от функционального? удалено или не существует
            Ответить
            • Пришёл модератор и всех разогнал.
              Ответить
            • В удаленных всё есть
              Ответить
              • https://i.imgur.com/aghbmuu.jpg вот скриншот с удаленной хуйней на всякий случай.

                https://habr.com/ru/article/448466/#comment_20098382 еще можно на хабре его кукареки почитать.

                >> Во время компиляции можно порождать код. Можно порождать тела функций (а с метаклассами можно?). Можно читать файлы и даже, скажем, загрузить XML-схему по сети (не надо так делать, но можно) и по ней сгенерировать функции и структуры данных.

                > Этот код — говно. То, что вы там рассказываете — это свойство любой скриптухи. На этом можно заканчивать. Никому в С++ абсолютна неинтересна кодогенерация, которая генерирует говно.
                Ответить
                • >. Давно топлю за редактирование AST в С++ на этапе компиляции

                  Подумаешь, у нас в Groovy это уже 10 лет есть
                  Ответить
                  • > у нас в Groovy

                    Groovy это скриптуха для анскиллябр и птушников
                    Ответить
                    • Груви компилируется
                      Ответить
                      • По Царю - даже хаскель скриптуха. А он вообще в натив компилируется.
                        Ответить
                        • define скриптуха
                          Ответить
                          • > Но давай я тебе сообщу критерии. А они очень простые. Скриптуха это всё то, что является вторичным по отношению к рантайму. Если ещё проще - это всё то, что не может существовать без внешнего рантайма как язык. Внешний относительно самого недоязычка.
                            Ответить
                            • Тогда и си -- скриптушка
                              https://docs.microsoft.com/en-us/cpp/c-runtime-library/c-run-time-library-reference?view=vs-2019
                              Ответить
                              • Настоящие цари не пользуются этой заедушной стандартной библиотекой
                                Ответить
            • Ооличие процедурного программирования от функционального не существует
              Ответить
              • В процедурном процедуры. В функциональном - функции.
                Ответить
                • На «Basic» можно писать и в «процедурном», и в «функциональном» стилях. Именно поэтому я за «Basic».
                  Ответить
                  • В Pascal тоже.

                    Во всех других языках поддерживается только функциональное (иногда вообще только методическое)
                    Ответить
                    • В Фортране — рутинное (SUBROUTINE).

                      А как назвать программирование в Ассемблере, где только CALL и RET?
                      Ответить
                • Ну этот разговор я уже слышал.
                  В структурном -- структуры.
                  В парном -- пары (кортежи из двух элементов)
                  В XP (экстремельном программировании) используется os Windows XP
                  Ответить
    • В чем, собственно, юмор?
      Ответить
    • Непонятна параша. Примеры использования есть?
      Ответить
      • в стдлибе.
        Ответить
        • I wish у гестов хоть что-то уник было
          Ответить
        • Пример как было -> чего хотим добиться -> как стало. Потому что яннп.
          Ответить
          • потому что не всегда нужно наименовывать передаваемые аргументы.

            у меня батхерт больше с нового валрус оператора. ебать редандант не дзену.
            Ответить
            • Когда это не нужно?
              Ответить
              • Тупой пример, но первое, что в голову: когда по уроцки назвал аргументы функции, которая считает сумму двух векторов. и не хочешь, чтобы хоть кто-то вызывал её как x1=x2=x3=y1=...
                Ответить
                • Ради этого нужно вводить какую-то синтаксическую парашу, которая ещё больше запутывает? Согласен с Пи, вообщем.
                  Ответить
                  • я бы тоже выкинул многое и начал бы со staticmethod
                    Ответить
                    • мамка ипаль тех, кто пользуется статик метод

                      зачем вам топлевел функции дали? вас чтоли джаваебы-шарпеи покусали?

                      вот классметод нужен
                      а статик -- нет
                      Ответить
                      • солидарен.
                        Ответить
                      • Лишнее пространство имён.
                        Ответить
                        • Клацмецод
                          Ответить
                          • А в чем там разница?
                            Ответить
                            • в том, что классмецод полезен так же для полиморфизма

                              а статик нужен ни за чем
                              Ответить
                            • Клацмецат: наследуется, не требует экземлпяра класса, юзается в фабриках и вообще крутой.
                              Статикметод: нахуй никому не нужен и является признанной ошибкой светлоликого Гuido.
                              Ответить
                              • Почему в плюсах он нужен, а в питоне нет? В чем отличие?
                                Ответить
                                • в плюсах нет классмецода
                                  Ответить
                                  • Я видимо что-то среди этого пукаю: «метод», «клацметод», «статикметод».
                                    Ответить
                                    • В плюсах (а так же жобе и шапрее) статик метод есть у класса. Он имеет доступ к полям, общим для всех инстансов класса и для всех его потомков.

                                      class Bubarekh {
                                        public:
                                        static int petuh;
                                        static void makaka();
                                      }
                                      
                                      class Barebukh: public Bubarekh {}


                                      Тут макаку можно вызвать и у баребуха, и у бубареха.
                                      Она будет иметь доступ к петуху, но в самом методе невозможно будет узнать вызван ли ты для бубареха или баберуха.

                                      В питончике же есть третий вид метода -- класс метод.
                                      Он параметтризуется классом.

                                      class Baberukh:
                                          pass
                                      
                                      class Burabekh(Baberukh):
                                          @classmethod
                                          def abezjana(cls):
                                              print(f"Me {cls}")


                                      То-есть метод может поразному вести себя в зависимости от класса.

                                      Например, можно сделать фабричный метод

                                      @classmethod
                                      def create(cls):
                                          return cls(42)


                                      В крестах это можно шаблонами, а жабы и щапры смокчут хуйца
                                      Ответить
                                • паблик статик метод класса в плюсах тоже не имеет экземпляра, но имеет доступ к атрибутами класс. эт как свойцтва.
                                  Ответить
                                  • В плюсах свойства лежат только в том классе, где они определены. Ты не можешь сделать вот так в крестах

                                    class Petuh:
                                        name = None
                                    
                                        @classmethod
                                        def set_name(cls, name):
                                            cls.name = name
                                    
                                    
                                    class Tsyplenok(Petuh):
                                        pass
                                    
                                    
                                    Petuh.set_name("Petr")
                                    Tsyplenok.set_name("Petya")
                                    
                                    print(Petuh.name)
                                    print(Tsyplenok.name)
                                    Ответить
                        • зачем?
                          Ответить
                • > когда по уроцки
                  - на уроцке по программированиема
                  Ответить
            • >>> help(pow)
              ...
              pow(x, y, z=None, /)
              ...
              
              >>> pow(x=5, y=3)
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
              TypeError: pow() takes no keyword arguments
              Ответить
            • если честно, то я считаю что нименованными могут быть два аргумента
              Более двух должны быть именованными

              мамка ипаль тех, кто делает функции с девятью булевыми неименнванными аргументами
              Ответить
              • Видимо для таких будут аргументы после слеша, если я правильно понял.
                Ответить
                • перед слешем могут быть только порядковые аргументы
                  потом любые
                  а после астериска (и абелиска) будут только именованные аргументы
                  Ответить
    • Кто-то может привести пример вызова функции со всеми тремя типами оргументов?
      Ответить
    • 3,14дар, иди в армию, 3,14дар!
      Ответить
      • что за хейт к пи туху?
        Ответить
        • В Ирзаиле есть город Питух Тыква

          Там живет сивоконь
          Ответить
          • Рябоконь
            Ответить
            • Ставьте плюс, кто знает его фамилию: https://cs.pikabu.ru/images/big_size_comm/2012-10_5/13510350872031.jpg
              Ответить
              • Гришечкин его фамилия.

                Я даже помню рекламные плакаты:
                ТЫ ежедневно на телеканале:
                СОЛДАТЫ
                ТУРИСТЫ
                СТУДЕНТЫ

                «Туристы» оказались полной лажей. Вообще ничего не запомнил оттуда.
                «Студенты» — тоже не очень удачный сериал.
                А вот из «Солдатов» люди начали тащить шуточки.
                Ответить
    • В 461 году до н. э., когда произошли землетрясения и появилась говорящая корова, а с неба стали падать куски мяса, которые поедали птицы, решено было поручить дуумвирам по священным делам обратиться к Сивиллиным книгам

      В 200 году до н. э. обращение к книгам было вызвано появлением чудовищных животных вроде поросёнка с человечьей головой, а также двуполых младенцев, которых утопили в море

      В 125 году до н. э. в Риме родился андрогин, и сенат обратился к книгам, в которых были найдены указания на жертвоприношени
      Ответить
    • Я почему-то вспомнил фразу: «Если тебе нужен „PL/1“, ты знаешь, где его взять».
      Ответить
      • ЧТо это?
        Ответить
        • https://ru.wikipedia.org/wiki/ПЛ/1

          Символ чего-то громоздкого и перегруженного.
          Ответить
          • Он содержит такой широкий набор синтаксических конструкций и встроенных функций, что, вероятно, не существует ни одного компилятора, поддерживающего все возможности языка ПЛ/1.
            Ответить
          • На фоне нынешних крестов или там новых ECMAScriptoв оно даже не выглядит чем-то мудрённым.
            Ответить

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