So I see this a lot. People call their dictionaries dict, their lists list, and so on. I know this is frowned upon because it overwrites the built-in value in Python.
The question is, why doesn't this raise an exception? I see a lot of people say to never do this, but why isn't it an error? The only conclusion I can come to is that there is a time when this sort of thing needs to happen.
So, in what situation could someone gain a programming advantage by overwriting a builtin? Or, if my conclusion is wrong, why aren't there protections against such overwriting?