def demo(red=2, black):
print(red, black)
报错non-default parameter follows default parameter
原因是python语法规定:默认参数(red)应跟随非默认参数(black),即调整位置
解决办法1:默认参数跟随非默认参数,如下
def demo(black, red=2):
print(black, red)
解决办法2:首位参数设置为星号(*),此时后面参数是带默认值还是不带默认值不用考虑位置,如下
def demo(*, red=2, black):
print(red, black)