Комментарии 5
Спасибо, познавательно.
https://habrastorage.org/r/w1560/getpro/habr/upload_files/01a/21b/f36/01a21bf36206b6a31358b3980d311cfc.png
А в двух словах чем это отличается от обычных дженериков в 3.10?
import typing
T = typing.TypeVar("T")
class List(typing.Generic[T]):
def __init__(self):
self.data: list[T] = []
def add(self, item: T):
self.data.append(item)
def pop(self) -> T:
return self.data.pop()
l = List[int]()
# l.add("q") <- Expected type int
l.add(1)
res = l.pop() # res: int
print(l.pop())
https://peps.python.org/pep-0646/#summary-examples
Тут более удачные примеры
В статью запихнули неправильный пример. Этот пример в докладе приводится как то, что уже было раньше, а не как теперь можно.
Статью писал безграмотный копирайтер, не особо внимательный и погружённый в тему.
транспонирование кода из второго питона в третий
Транспонирование кода — это что-то новенькое. :)
Ответственность за «транспонирование» беру полностью на себя! Это я в докладе сказал это слово :)) (пруф: https://youtu.be/osVUoYNAumA?t=468)
Термина такого действительно нет, не знаю, почему именно оно пришло мне в голову. Ну приглючило, бывает :)
Давайте заменим на «перевод».
Картинку тоже попросил заменить на актуальную, спасибо большое за внимательность!
Андрей Гейн: субъективные новости из мира Python