Python函数参数([x [,y [,z]]])含义

Ame*_*eyj 0 python parameters

我在python docs中遇到过这种方法签名.这是什么意思?例如.

smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]
Run Code Online (Sandbox Code Playgroud)

一般语法如function([x[,y[,z]]])

Ste*_*enH 5

这是指可选参数,每个括号表示函数调用的另一个特定级别(在这种情况下,该函数实际上是SMTP实例的构造函数).所以你可以打电话给...

smtplib.SMTP(host)
Run Code Online (Sandbox Code Playgroud)

要么

smtplib.SMTP(host, port)
Run Code Online (Sandbox Code Playgroud)

要么

smtplib.SMTP(host, port, local_hostname)
Run Code Online (Sandbox Code Playgroud)

要么

smtplib.SMTP(host, port, local_hostname, timeout)
Run Code Online (Sandbox Code Playgroud)

如果您查看此模块的示例,则会调用

server = smtplib.SMTP('localhost')

这将是上面构造函数的第一个版本

编辑:正如arshajii正确指出的那样,这不是一种语法,而只是一种文档风格


ars*_*jii 5

括在括号中的参数是可选的.例如,

foo(x[, y])
Run Code Online (Sandbox Code Playgroud)

意味着这x是必需的,但是y可选的.在您的情况下,所有参数都标记为可选.

请注意,这不是 Python语言的语法,而是文档约定.