Tkinter, What does this mean "*"

The fourth line there is a *,. I cannot find any reference to what it means in this context. It is in every widget in tkinter. I just like to understand what everythig does. Thanks

tkinter.Button def __init__(self,
             master: Misc | None = ...,
             cnf: Dict[str, Any] | None = ...,
             *,
             activebackground: str = ...,
             activeforeground: str = ...,
             anchor: Literal["nw", "n", "ne", "w", "center", "e", "sw", "s", "se"] = ...,

It is unrelated to the context of tkinter. There are three types of parameters possible in a function definition. They are separated by fake parameters, a / and a *. See the definition at

maybe,

it indicates that

  1. All parameters left of the / are treated as positional-only.
def func(a, b, /, c=1, *, d=2):
    print('hello')

func(1, 2) # valid
func(1, b=2) # invalid
  1. If / is not specified in the function definition, that function does not accept any positional-only arguments.
def func(a, b, c=1, *, d=2):
    print('hello')
func(a=1, b=2) # valid
func(1, 2) # valid
  1. The logic around optional values for positional-only parameters remains the same as for positional-or-keyword parameters.
def func(a, b=1, /, c=1, *, d=2):
    print('hello')

func(1, 2) # valid
func(1) # valid
  1. Once a positional-only parameter is specified with a default, the following positional-only and positional-or-keyword parameters need to have defaults as well.
def func(a, b=1, /, c, *, d=2): # invalid
  1. Positional-only parameters which do not have default values are required positional-only parameters.
def func(a, b=1, /, c=3, *, d=2):
    print('hello')

func(b=2) # invalid
func(1, b=2) # invalid
func(1) # valid
func(1, 2) # valid

for the OP case, it appears that it is point 2.
after *, it is keyword only parameters.
before *, both positional and keyword parameters are valid.