假设我想写一个类似于range的函数
回想一下 range 有一个参数和 2/3 参数形式:
class range(object)
| range(stop) -> range object
| range(start, stop[, step]) -> range object
如果我希望方法或函数具有相同的接口,有没有比这更优雅的方法:
def range_like(*args):
start,stop,step=[None]*3
if len(args)==1:
stop=args[0]
elif len(args)==2:
start,stop=args
elif len(args)==3:
start,stop,step=args
else:
raise ValueError
print(start,stop,step)