Вопросы по теме 'static-typing'

Интерфейс против базового класса
Когда мне следует использовать интерфейс, а когда - базовый класс? Всегда ли это должен быть интерфейс, если я не хочу фактически определять базовую реализацию методов? Если у меня класс собаки и кошки. Зачем мне использовать IPet вместо...
168871 просмотров


Возможен ли статически типизированный полный вариант Лиспа?
Возможен ли статически типизированный полный вариант Лиспа? Есть ли вообще смысл в существовании чего-то подобного? Я считаю, что одним из достоинств языка Lisp является простота его определения. Подорвет ли статическая типизация этот основной...
27255 просмотров

Будет ли необязательная статическая типизация пользой для разработки Python API или недостатком? (включен пример декоратора проверки типов)
Я долгое время разрабатываю Python, и мне очень нравится динамическая природа языка, но мне интересно, выиграет ли Python от необязательной статической типизации. Была бы полезна возможность применять статическую типизацию к API библиотеки и каковы...
405 просмотров
schedule 18.03.2023

Как Lisp может быть одновременно динамическим и компилируемым?
Итак, сначала, чтобы разобраться с этим: я прочитал следующий ответ: Как Lisp динамичен и компилируется? но я не совсем понимаю его ответ. На таком языке, как Python, выражение: x = a + b На самом деле не может быть скомпилирован,...
1727 просмотров

mypy не обнаруживает ошибку базового типа
С питоном 3.5.1. и текущая установка mypy с использованием git, mypy помечает ошибки 1 и 2, но не сообщает об ошибке 3 Что я делаю не так, или это баг, или это известная проблема? import typing def test_ordered_dict(od: typing.Dict[str,int])...
1392 просмотров
schedule 22.09.2022

Забывает ли структурное подтипирование потока определенные свойства подтипа?
В настоящее время я изучаю структурную типизацию. Я скептически отношусь к идее, что два типа считаются эквивалентными только потому, что у них есть часть общей структуры. Это очень похоже на статическую утиную типизацию и полностью игнорирует...
84 просмотров

Статический тип объекта исключения
Я прочитал следующее из C++ Primer (5-е издание, раздел 18.1.1): «Когда мы выбрасываем выражение, статический тип времени компиляции этого выражения определяет тип объекта исключения». Итак, я попробовал следующий код: #include <iostream>...
217 просмотров

Тип объекта исключения, созданного выражением исключения
Я прочитал следующее из C++ Primer (5-е издание, раздел 18.1.1): «Когда мы выбрасываем выражение, статический тип времени компиляции этого выражения определяет тип объекта исключения». Под "типом объекта исключения" автор подразумевает...
83 просмотров

Как объявить гибрид процедуры / функции в MyPy
У меня есть функция, которая может возвращать значение (тогда это должно быть int) или вести себя как процедура (т. Е. Она вообще не вызывает return, а затем фактически возвращает None ). Как вы уже догадались, это функция main() в этом хорошо...
150 просмотров

Пусть mypy предупреждает о проверках на равенство переменных разных типов
mypy --strict допускает следующий минимальный пример без ошибок: a: int = 1 b: str = '1' if a == b: pass else: pass Есть ли возможность заставить его выдавать ошибку (или хотя бы предупреждение) о строке if a == b: ?
313 просмотров
schedule 09.07.2022

Как преобразовать полиморфное значение в строку?
На самом деле я ищу функцию с такой подписью, как 'a -> string , которая преобразует данный полиморфный тип в строку. Я уже думал о чем-то вроде let func elem = match elem with | int -> string_of_int elem ... Надеюсь, кто-нибудь может...
102 просмотров

Как проверить тип TypeVar во время выполнения
У меня есть общий класс Graph[Generic[T], object] . Мой вопрос, есть ли какая-нибудь функция, которая возвращает тип, переданный как общий класс Graph >>> g = Graph[int]() >>> magic_func(g) <class 'int'>
412 просмотров
schedule 17.07.2023

Можно ли объявить статическую типизированную переменную?
Если у меня есть следующая функция: def rand(int: int) -> int: ... rand('2') Это работает, потому что когда я вызываю функцию rand , редактор показывает ошибку. Но он все еще компилирует код. И я могу написать что-то вроде: def...
57 просмотров