by defaultarguments are matched by positionfrom left to rightand you must pass exactly as many arguments as there are argument names in the function header howeveryou can also specify matching by nameprovide default valuesand use collectors for extra arguments argument matching basics before we go into the syntactic detailsi want to stress that these special modes are optional and deal only with matching objects to namesthe underlying passing mechanism after the matching takes place is still assignment in factsome of these tools are intended more for people writing libraries than for application developers but because you may stumble across these modes even if you don' code them yourselfhere' synopsis of the available toolspositionalsmatched from left to right the normal casewhich we've mostly been using so faris to match passed argument values to argument names in function header by positionfrom left to right keywordsmatched by argument name alternativelycallers can specify which argument in the function is to receive value by using the argument' name in the callwith the name=value syntax defaultsspecify values for optional arguments that aren' passed functions themselves can specify default values for arguments to receive if the call passes too few valuesagain using the name=value syntax varargs collectingcollect arbitrarily many positional or keyword arguments functions can use special arguments preceded with one or two characters to collect an arbitrary number of possibly extra arguments this feature is often referred to as varargsafter variable-length argument list tool in the languagein pythonthe arguments are collected in normal object varargs unpackingpass arbitrarily many positional or keyword arguments callers can also use the syntax to unpack argument collections into separate arguments this is the inverse of in function header--in the header it means collect arbitrarily many argumentswhile in the call it means unpack arbitrarily many argumentsand pass them individually as discrete values keyword-only argumentsarguments that must be passed by name in python (but not )functions can also specify arguments that must be passed by name with keyword argumentsnot by position such arguments are typically used to define configuration options in addition to actual arguments special argument-matching modes