Often when I see class definitions class Foo:, I always see them start with upper case letters.
class Foo:
However, isn\'t a list [] or a dict {
[]
{
PEP8 is the place to go for code style.
To address your question on why list = list() is valid, list is simply a name in the global namespace, and can be overriden like any other variable.
list = list()
list