# Positional only, /, positional or keyword, *, keyword only: def func(pos="pos", /, flex="flex", *, kw="kw"): pass # All of these are ok: func() func("pos") func("pos", "flex") func("pos", "flex", kw="kw") func("pos", flex="flex") func("pos", flex="flex", kw="kw") func(flex="flex") func(flex="flex", kw="kw") func(kw="kw") # You can't pass positional-only with a keyword: #func(pos="pos", flex="flex", kw="kw") # You can't have positional after keywords: #func("pos", flex="flex", "kw") # You can't omit the keyword for keyword-only arguments: #func("pos", "flex", "kw")