This value can be assigned to another name which can then also be used as a function. You might object that fib is not a function but a procedure. In Python, like in C, procedures are just functions that don't return a value. In fact, technically speaking, procedures do return a value, albeit a rather boring one. Writing the value None is normally suppressed by the interpreter if it would be the only value written.
Different types define different methods.
Methods of different types may have the same name without causing ambiguity.