TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #64 · 6 апр.

Думаете ˍˍfutureˍˍ нужен только для Python2? Нет, это процесс постоянный. В Python3 тоже есть свои "future". from __future__ import annotations Похоже на бекпорт аннотаций типов из Python3 в Python2, но это не так. Это имплементация PEP 563 Postponed Evaluation of Annotations которая будет дефолтной только в Python4. Что делает этот future? Если вы активно используете аннотации типов в Python3 то знаете, как они обычно выглядят. def func(x: int) -> int: return x * 2 При этом у объекта функции появляется атрибут ˍˍannotationsˍˍ >>> print(func.__annotations__) {'x': <class 'int'>, 'return': <class 'int'>} Видно, что в этой переменной находится словарь. Ключ словаря это имя аргумента функции, а значение это непосредственно ссылка на тип. А так же есть тип для return. В более сложных случаях это будут инстансы объектов из модуля typing from typing import List def func(x: int) -> List[int]: return [x] * 10 >>> print(func.__annotations__) {'x': <class 'int'>, 'return': typing.List[int]} Что происходит если мы импортим annotations из ˍˍfutureˍˍ? Изменяется способ определения аннотаций. Дело в том, что все эти инстансы типов создаются в момент определения функции когда модуль импортируется. Так же как и значения по умолчанию они должны исполниться и вернуть какой-то объект. В нашем случае это ссылка на тип int или инстанс класса typing.List. И тут возникает две проблемы, описаные в PEP. Если коротко то звучит это так: 1. Если в подсказке указывается тип, который еще не определён, это вызовет ошибку. Приходится описывать его просто строкой или менять порядок определения. 2. Определение ссылок на типы порой занимает много времени, так как требуется импорт модулей и создание инстансов. Но если вы импортируете наш future, то активируется так называемое отложенное определение ссылок (Postponed Evaluation of Annotations). В результате вместо создания инстансов и ссылок в ˍˍannotationsˍˍ просто записывается строка с этой подсказкой. from __future__ import annotations def func(x: int) -> int: return x * 2 >>> print(func.__annotations__) {'x': 'int', 'return': 'int'} В дальнейшем ваши IDE и ресолверы типов могут брать эти строки и исполнять самостоятельно где то на фоне, когда все необходимые типы уже определены. Для преобразования этих строк в привычный вид есть готовая функция >>> import typing >>> typing.get_type_hints(func) {'x': <class 'int'>, 'return': <class 'int'>} Но делать это можно уже только по необходимости. #pep

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #layoff

当前筛选 #layoff清除筛选
罗咔咔

@luokakaroca · Post #42 · 08.02.2023 г., 09:20

🤖 #商业#AIGC#layoff 互联网的增量已经达到峰值,科技公司的裁员只是一个开始,围绕用户增长的岗位机会不断减少,比如产品研发,战略,中台等。能够给公司带来效率,商业化的岗位会增加。 未来的一个大方向会在AIGC,虽然目前处于初始阶段,以后在文字,图片,视频,甚至创意方面都会逐渐创造更大的价值。不一定能代替人,但能提供多角度参考内容,提高生产力。以目前大火的chatgpt为例,内容营销,产品描述,搜索引擎优化,职位列表关键词,面试问题等都是流行用途。 风险多多,机会多多。 文章参考链接