В основном он используется только для документации.Когда некоторые проверяют сигнатуру метода, они увидят, что param
помечен как int
, что скажет им, что автор метода ожидал, что они передадут int
.
, потому что программисты на Pythonиспользуйте утку, это не означает, что у вас есть для передачи int
, но это говорит о том, что код ожидает что-то "int-like".Таким образом, вам, вероятно, придется передавать что-то в основном «числовое» по своей природе, которое поддерживает арифметические операции.В зависимости от метода он может быть пригоден для использования в качестве индекса, а может и нет.
Однако, поскольку это синтаксис, а не просто комментарий, аннотация видна для любого кода, который хочет проанализироватьон .Это открывает возможность написания typecheck
декоратора, который может обеспечить строгую проверку типов для произвольных функций;это позволяет вам размещать логику проверки типа в одном месте, и каждый метод объявляет, какие параметры он хочет, чтобы он был строго проверен (добавляя аннотацию типа) с минимальным синтаксисом, таким образом, чтобы это было видно для программистов-клиентов, которые просматриваютопределения методов, чтобы выяснить интерфейс.
Или вы можете делать другие вещи с этими аннотациями.Стандартизированное значение еще не разработано. Может быть , если кто-то придумает функцию убийцы, которая использует их и получит широкое распространение, то однажды она станет частью языка Python, но я подозреваю, что гибкость их использования будет такой, какой вы захотите, будет слишкомполезно когда-либо делать это.