如果我在python中调用range(1),则第一个参数是' max'范围的论证。对于范围(1,2,3),第一个参数是' min'范围的论证。我如何为自己定义一个函数,如第一个参数的含义取决于所有参数的计数?
答案 0 :(得分:1)
您可以这样做(使用range
实现作为示例):
def range(start, stop=None, step=1):
if stop is None:
start, stop = 0, start
while start < stop:
yield start
start += step
答案 1 :(得分:0)
您可以使用*args
并检查其大小:
def f(*args):
if len(args) == 1:
return "One argument shows the value: {}".format(args[0])
elif len(args) == 2:
return "Two arguments sums the values: {}".format(args[0] + args[1])
return "Everything else does nothing"
确实:
>>> f()
'Everything else does nothing'
>>> f(0)
'One argument shows the value: 0'
>>> f(1, 1)
'Two arguments sums the values: 2'
>>> f(1, 2, 3)
'Everything else does nothing'