Colab

def annoying_print3(obj1, obj2="", obj3=""):
    print(obj1, obj2, obj3)

annoying_print3() # need at least 1 parameter for obj1 



    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    <ipython-input-4-1f3fcb0f52bb> in <module>
    ----> 1 annoying_print3() # need at least 1 parameter for obj1
    

    TypeError: annoying_print3() missing 1 required positional argument: 'obj1'


annoying_print3("hi") # hi
annoying_print3(1, 2) # 1 2
annoying_print3(1, 2, 3) # 1 2 3
annoying_print3(1, 2, 3, 4) # too many params

hi  
1 2 
1 2 3

    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    <ipython-input-9-c886d9407ea9> in <module>
          2 annoying_print3(1, 2) # 1 2
          3 annoying_print3(1, 2, 3) # 1 2 3
    ----> 4 annoying_print3(1, 2, 3, 4) # too many params
    

    TypeError: annoying_print3() takes from 1 to 3 positional arguments but 4 were given


annoying_print3(obj1=1) # 1
annoying_print3(obj1=1, obj2=2) # 1 2
annoying_print3(obj1=1, obj3=3) # 1  3
annoying_print3(obj2=2, obj1=1) # 1 2
annoying_print3(1, obj2=2) # 1 2
annoying_print3(1, obj3=3) # 1  3

 

1  
1 2 
1  3
annoying_print3(obj2=1) # needs value for obj1


    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    <ipython-input-12-8babd8f39c03> in <module>
    ----> 1 annoying_print3(obj2=1) # needs value for obj1
    

    TypeError: annoying_print3() missing 1 required positional argument: 'obj1'


# after named arguments cannot put positional arguments
annoying_print3(obj2=2, 1) 


      File "<ipython-input-11-1f30a95c9611>", line 2
        annoying_print3(obj2=2, 1)
                               ^
    SyntaxError: positional argument follows keyword argument