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

    +3

    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
    class Metapetuh(type):
        def __subclasscheck__(cls, C):
            return True
        def __instancecheck__(self, other):
            return True
    
    
    class Petuh(metaclass=Metapetuh):
        pass
    
    
    issubclass(object, Petuh)  # True
    isinstance(42, Petuh)      # True

    Мы зашкварили весь «Питон», и теперь все классы в нём — петухи.

    По просьбам трудящихся: https://govnokod.ru/27166#comment602776.

    Запостил: gost, 19 Декабря 2020

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

    • А всё потому, что хочется и ООП съесть, и на дактайпинг сесть. Наследоваться от охулиарда Iterable, Sequence, Collection, Container и прочей питушни явно — слишком уныло, вот и решили питонухи добавить веселья в наш скучный мир.
      Ответить
      • Добрый вечер.

        Этот оффтоп сгенерирован автоматически.

        Индекс оффтопов: https://index.gcode.space/.
        Зеркала Говнокода и полезные ресурсы:
        * https://govnokod.xyz/ (альтернативный Говнокод)
        * https://gcode.space/ (read-only зеркало Говнокода)
        * https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
        * https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
        * https://vorec.space/ (глоссарий Говнокода)
        * https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
        Ответить
      • Изначально прочёл: «на диктайпинг сесть».

        >Наследоваться от охулиарда Iterable, Sequence, Collection, Container и прочей питушни явно — слишком уныл
        Да, потому что это скучный Java-way.

        По-моему заебись получилось. Вполне в духе скриптухи.
        Ответить
        • Ну да, тут скорее вопрос к наименованию. Сделали бы какой-нибудь conforming(obj, type), match_interface(obj, type) или что-то подобное — вопросов бы не было. А когда у меня на вопрос is subclass выдаётся ответ «да» для вообще никак не связанных классов — это питушня какая-то.

          Кстати, мельком читал что-то про то, что в «Питоне» собираются ввести автоматический диктайпинг, чтобы можно было просто объявлять интерфейсы, и им бы сразу все подходящие классы соответствовали. Правда, не помню, это в основном языке так будет, или только для тайп-хинтов, надо бы найти.
          Ответить
    • Кстати, а обратное можно сделать? Чтобы петух был экземпляром любого класса.
      Ответить
      • Кажется, нет: для этого надо насрать в type или object. Хотя, в принципе, если попердолиться с ctypes…
        Ответить
        • > ctypes

          Так и UB призвать недолго...
          Ответить
          • Можно через ctypes.pythonapi, «честными» функциями CPython. Но всё равно опасно, да.
            Ответить
    • В Ди такой пародии нет, именно поэтому я на плюсах.
      Ответить

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