slash asterisk parameters functions

Source

  • the slash (/) separates positional-only arguments from positional or keyword arguments
  • the asterisk (*) separates positional or keyword arguments from keyword-only arguments
  • if both occur in a parameter list, the slash (/) must come before the asterisk (*)
def slash_usage(positional_only, /, either):
    print(positional_only, either)
 
def asterisk_usage(either, *, keyword_only):
    print(either, keyword_only)
 
def both_usage(positional_only, /, either, *, keyword_only):
    print(positional_only, either, keyword_only)
  • using slash (/) and asterisk (*) directly after each other, forces everything left of the slash to be passed by position-only and everything to the right to be passed by keyword-only
def both_usage(positional_only, /, *, keyword_only):
    print(positional_only, keyword_only)