class Node():
def __init__(self,value,parrent=None,neigh) -> None:
self.val=value
self.parrent=parrent
self.neigh=neigh
Here I want to define a class. There is an error about neigh that non-default argument follows default argument. I saw the solution of this question but my main question is I want to know why python want us to do this?
>Solution :
Because Python allows omission of keyword / default-specified parameters and allows passing parameters without explicitly naming them. If your definition was legal syntax (and the rest of the language functioned the same way), then instantiating
n = Node(4, 6)
might mean either
n = Node(value=4, parrent=6, neigh=None)
or
n = Node(value=4, parrent=None, neigh=6)
The point of syntax rules is to resolve ambiguities like this.