【发布时间】:2018-02-18 01:21:47
【问题描述】:
我经常发现一些像open(name[, mode[, buffering]]) 这样定义的函数,我知道这意味着可选参数。
Python 文档说它是模块级函数。当我尝试用这种风格定义一个函数时,它总是失败。
例如def f([a[,b]]): print('123')
不工作。
有人可以告诉我模块级别的含义以及如何定义具有这种风格的函数吗?
【问题讨论】:
-
方括号符号不是代码,它是一种描述语言语法的方式,称为巴科斯-瑙尔形式。它被广泛用于许多语言的文档,而不仅仅是 python。 en.wikipedia.org/wiki/Augmented_Backus-Naur_form
-
这种风格好像没有真正的编码,所以doc表示只是表示,并不代表真正的代码?
-
没错!现在你的目标是什么,编写一个接受可选参数的函数?你知道实现这一目标的一些方法吗?
标签: python