В Python нет extension-методов, господи, какой позор 🤦‍♂️ и это в интерпретируемом языке-то...

@mo ну отнаследуйся от str 😄
В Kotlin я так могу сделать. Удивился, что в петоне нельзя

@nonsense открою омерику, но от str, int, и любых встроенных классов можно наследоваться! Особо качественно можно упороться, если отнаследоваться от type, называется "метаклассы". Но да, тип литералов не изменится, и надо будет делать MyCoolStr("something something")

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

@3draven @mo об этом ты на стадии компиляции узнаешь

@nonsense @mo Если сигнатура совпадет, то просто будет вызван другой метод

@3draven @mo нет, с какого перегара? компилятор увидит неоднозначность

Follow

@nonsense @mo я в последних версиях не пробовал котлина, но в старых ничего он не видел. Он предпочитал метод класса.

@nonsense @mo
Паста отсюда teletype.in/@skillbranch/HyTEc

Если в классе есть и функция-член, и функция-расширение с тем же возвращаемым типом и тем же именем и применяется с такими же аргументами, то функция-член имеет более высокий приоритет. К примеру:

class C {
fun foo() { println("member") }
}

fun C.foo() { println("extension") }

Если мы вызовем c.foo() у любого объекта c с типом C, на экран выведется "member", а не "extension".

@nonsense @mo да и как бы он на этапе компиляции понял, что тебе надо экстеншен по тексту, у которого нет отличий с вызовом метода? С чего вдруг это ошибка должна быть, неясно. Разве что сравнивать сигнатуры в либах разных версий. В общем я в компоненте "по историческим причинам на котлин" экстеншены использовать запретил от греха, как и кучу другого хлама.

Sign in to participate in the conversation
MustUdon

I like Twitter, but, Mastodon it is so excited! Feel free to register it is server just for fun! Usefull links https://instances.social https://www.reddit.com/r/Mastodon/comments/yugh2o/some_useful_mastodon_lists/?utm_source=share&utm_medium=web2x&context=3