python3中的range函数有三个参数,其中两个是可选的。所以论证列表看起来像:
[开始],停止,[步骤]
所以这意味着(如果我错了,请纠正我)在非可选参数之前有一个可选参数。但是如果我试图定义这样的函数,我会得到:
>>> def foo(a = 1, b, c = 2):
print(a, b, c)
SyntaxError: non-default argument follows default argument
作为一个普通的python用户,这是我做不到的,还是我可以定义这样一个函数?我当然可以做些
def foo(a, b = None, c = 2):
if not b:
b = a
a = 1
但是例如,帮助功能会显示奇怪的信息。所以我真的想知道是否有可能定义一个像上面这样的函数(第一个)。
range()
接受一个位置参数和两个可选参数,根据传入的参数数量对这些参数进行不同的解释。如果只传入了一个参数,则假定它是
stop
参数,否则第一个参数将被解释为start。实际上,
range()
,coded in C接受的参数数目是可变的。你可以这样模仿:但你也可以交换参数:
range
不接受关键字参数:它接受1、2或3个位置参数,这些参数根据其编号进行计算:
也就是说,不可能创建具有定义的
stop
、step
和默认值start
的范围。相关问题 更多 >
编程相关推荐