def __init__(self, shapename, **kwds):
def __init__(self, *, shapename, **kwds):
def __init__(self, shapename=None, **kwds):
In the context of higher level and or dynamic languages, I'd argue that Python is rather low on the complexity scale