>>> int('۹')
9
>>> int('߇७𝟟')
777
>>> '੨'.isdecimal()
True
>>> bool(__import__('re').match('\d', '߁'))
True
Важное про цифры и Юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.
Это крайне важно знать, потому что эти символы влияют на такие функции, как
int
, unicode.isdecimal
и даже re.match
.Предупрежден — значит вооружен.
Python Map | Обучение 🐍
🤯3❤2
from types import MethodType
class MyClass:
def __init__(self, value):
self.value = value
def external_func(self, increment):
return self.value + increment
instance = MyClass(10)
instance.method = MethodType(external_func, instance)
print(instance.method(5))
Модуль
types
: класс MethodType
types.MethodType
— это способ динамического добавления функций в экземпляры класса как методы. Это позволяет создавать методы "на лету" и добавлять их в объекты, что может быть полезно в сложных сценариях, когда структура класса определяется динамически.В этом примере функция external_func добавляется в экземпляр класса MyClass как метод. Это позволяет вызывать её как обычный метод класса, используя атрибуты экземпляра.
@PyMapChannel 🐍
❤2