Существует ли на Python эквивалент Typescript `typeof` или C++ `decltype`?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Существует ли на Python эквивалент Typescript `typeof` или C++ `decltype`?

Сообщение Anonymous »

Предположим, у нас есть функция, например, сокращение, которая принимает обратный вызов, например, объединитель. Если у меня есть пример функции обратного вызова exampleReducer, я бы хотел избежать необходимости писать тип обратного вызова вручную и использовать вместо этого тип exampleReducer.
В C++ я могу получить тип exampleReducer, используя decltype:
#include
#include
using namespace std;;

float exampleReducer(float x, float y) {
return x+y;
}

auto reduce(decltype(exampleReducer) reducer, vector numbers) {
auto result = numbers[0];
for (auto x: numbers)
result = reducer(result, x);
return result;
};

int main() {
std::cout x+y;

const reduce = (reducer: typeof exampleReducer, numbers: number[]) => {
let result = numbers[0];
numbers.forEach((n) => { result = reducer(result, n);})
return result
}

console.log(reduce((x, y) => x/y, [1,2,3,4,5]))

Я знаю, что в Python 3.11 к модулю typing будет добавлена ​​функция show_type, которая уже доступна в typing-extensions, но в документации указано :

Когда средство проверки статического типа обнаруживает вызов этой функции, оно выдает диагностику с указанием типа аргумента.

Похоже, что средства проверки типов могут определить тип, но только для целей отладки...
Существует ли эквивалент Python, который позволил бы использовать тип exampleReducer как аннотацию типа?
def exampleReducer(x: float, y: float):
return x+y;

def reduce(reducer: ???what goes here??? exampleReducer, numbers: list[float]):
result = numbers[0];
for n in numbers:
result = reducer(result, n)
return result

print(reduce(lambda x, y: x/y, [1,2,3,4,5]))


Подробнее здесь: https://stackoverflow.com/questions/739 ... c-decltype
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница между Decltype и Typeof?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Почему decltype(member) не является константой, а decltype((member)) предназначен для константного объекта и как это вли
    Anonymous » » в форуме C++
    0 Ответы
    56 Просмотры
    Последнее сообщение Anonymous
  • Как использовать FFI::typeof
    Гость » » в форуме Php
    0 Ответы
    30 Просмотры
    Последнее сообщение Гость
  • Отражение GetField() не работает из GetType(), только typeof(T) [дубликат]
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Почему typeof(Array).IsArray возвращает false?
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous

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