Именованные и дополнительные параметры полностью поддерживаются.В .NET уже давно они есть для поддержки VB.NET, и поэтому IronPython с самого начала поддерживал этот способ.Новый синтаксис C # соответствует тем же базовым метаданным, что и старая поддержка VB.
Для вызова вы используете f (x = 42), который является синтаксисом именованных параметров Python.Для необязательных параметров вы можете просто не указывать их.В вашем примере вы можете сделать Draw (вес, рост) и оставить Area вне.Или вы можете вызвать w / weight и height в качестве именованных параметров и оставить Area вне.
Базовые метаданные .NET, которые ищет IronPython, это либо OptionalAttribute, либо DefaultParameterValueAttribute.Для необязательных мы передаем default (T), если тип не является объектом, и в этом случае мы передаем Missing.Value.Это в целом соответствует тому, как рефлексия также вызывает эти API.