Ну, в жс часто юзают комментарии, которые IDE понимает, в питоне юзают аннотации.
Но обязательно находится какая-нибудь либа, у которой есть функция с сигнатурой
func(*args, **kwargs)
(Это как в джаве написать Object... data)
И я щас трогаю либы в жс, и там постоянно делают "гибкие" параметры, типа можно написать
func(["a", "b"])
А можно
func([{type: "a", x: 15}, {type: "b", x: 17}])
А можно вообще
func({
data: [{type: "a", x: 15}, {type: "b", x: 17}],
handler: otherFunc,
isSomething: true,
})
И это один и тот же func.
И в сигнатуре это говно конечно же не отражается...