Змея / Говнокод #27167 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 gost, (Updated )

Комментарии (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.pythonapi, «честными» функциями CPython. Но всё равно опасно, да.
          Ответить
  • В Ди такой пародии нет, именно поэтому я на плюсах.
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8