as an additional example of an interesting polymorphic functionwe consider python' support for range (technicallythis is constructor for the range classbut for the sake of this discussionwe can treat it as pure function three calling syntaxes are supported the one-parameter formrange( )generates sequence of integers from up to but not including two-parameter formrange(start,stopgenerates integers from start up tobut not includingstop three-parameter formrange(startstopstep)generates similar range as range(startstop)but with increments of size step rather than this combination of forms seems to violate the rules for default parameters in particularwhen single parameter is sentas in range( )it serves as the stop value (which is the second parameter)the value of start is effectively in that case howeverthis effect can be achieved with some sleight of handas followsdef range(startstop=nonestep= )if stop is nonestop start start from technical perspectivewhen range(nis invokedthe actual parameter will be assigned to formal parameter start within the bodyif only one parameter is receivedthe start and stop values are reassigned to provide the desired semantics keyword parameters the traditional mechanism for matching the actual parameters sent by callerto the formal parameters declared by the function signature is based on the concept of positional arguments for examplewith signature foo( = = = )parameters sent by the caller are matchedin the given orderto the formal parameters an invocation of foo( indicates that = while and are assigned their default values python supports an alternate mechanism for sending parameter to function known as keyword argument keyword argument is specified by explicitly assigning an actual parameter to formal parameter by name for examplewith the above definition of function fooa call foo( = will invoke the function with parameters = = = function' author can require that certain parameters be sent only through the keyword-argument syntax we never place such restriction in our own function definitionsbut we will see several important uses of keyword-only parameters in python' standard libraries as an examplethe built-in max function accepts keyword parametercoincidentally named keythat can be used to vary the notion of "maximumthat is used