looks like pass by reference to me... it's just that certain objects can't be changed- which has nothing to do with how it's passed to a function, and more how assignment works in python. Still a great video! I just disagree with the conclusion.
That's the discussion I wanted to spur on actually. Python.org does use the pass by assignment terminology though see these docs. docs.python.org/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-reference
Before watching the video I'd say pass by value with an asterisk. That asterisk being that every Python variable is a pointer I think, so you're passing pointers by value, which in C would be how you pass something by reference as well to some extent.
Assignment like age = 26 would not change the object anyways, it just replaces the old object with a new one. The age += 10 would be better example because it roughly translates to age.__iadd__(10) method call on the original object, possibly modifying it.
Just like java I guess. I always missing in those languages an ability to control pass type like with c++ pointers. But then I remember that pass by value is practically useless