Можете ли вы определить тип возврата функции динамически, используя тип произвольного атрибута в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Можете ли вы определить тип возврата функции динамически, используя тип произвольного атрибута в Python?

Сообщение Anonymous »

Я знаю в TypeScript, у вас может быть что -то вроде следующего: < /p>

Код: Выделить всё

type MyType = {
x: number;
y: string;
}

const func = (t : MyType, k : TKey): MyType[TKey] => {
// Do something...
return t[k];
}

const a = func({ x: 1, y: '2' }, 'x') // type: number
const b = func({ x: 1, y: '2' }, 'y') // type: string
Я хочу сделать то же самое в Python с TypedDict :

Код: Выделить всё

class MyType(TypedDict):
x: int
y: str

class Key:
x: Literal['x'] = 'x'
y: Literal['y'] = 'y'

def func(t: MyType, k: Key) -> ???:
# Do something...
return t[k]

a = func({ Key.x: 1, Key.y: '2' }, Key.x) # (should be) type: int
b = func({ Key.x: 1, Key.y: '2' }, Key.y) # (should be) type: str
это возможно? __nannotations __ или get_type_hints , но если я назначаю __annotations __ моей функции динамически, это не поднимается моим Linter.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... e-of-an-ar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»