I find there are 2 kinds of parameters as shown below: - The required parameter like `p1` which must get an argument from a function call because it doesn't have a default value. - The optional parameter like `p2`, `*args` or `**kwargs` which optionally gets an argument from a function call because it has a default value. ```pythoh def func(p1, p2='World'): print(p1, p2) func(p1='Hello') # Hello World ``` ```python def func(*args, **kwargs): print(args, kwargs) func() # () {} ``` So, [the glossary](https://docs.python.org/3/glossary.html#term-parameter) of `parameter` should also explain `required parameter` and `optional parameter` in addition to the 5 parameters as shown below: > ... There are seven kinds of parameter: > - positional-or-keyword: ... > - positional-only: ... > - keyword-only: ... > - var-positional: ... > - var-keyword: ... > - required: ... > - optional: ...