Параметры в квадратных скобках являются необязательными.Это означает, что у них есть значение по умолчанию, которое используется, если вы не предоставите значение.Если вы читаете описание функции, обычно это объясняется.
Если у вас есть вложенные скобки, это означает, что аргумент во внутренней скобке не может быть предоставлен, если хотя бы один из аргументов во внешней скобке не указан.Например:
csv.register_dialect (name [, dialect [, ** fmtparams]])
означает, что: csv.register_dialect(name)
является действительным, csv.register_dialect(name, dialect)
являетсядопустимо, csv.register_dialect(name, dialect, **fmtparams)
допустимо, но csv.register_dialect(name, **fmtparams)
недопустимо.
* и ** являются аргументами и кваргами, здесь больше ссылок на них.