Why is there already an attribute?

why in this code there is alredy .attribute exits?
is it attribute that always exits for any object? because i check in normal string and it doesnt

class FakeDict:
  pass

fake_dict = FakeDict()
fake_dict.attribute = "Cool"

dir(fake_dict)

you just created it

i didnt create it outside of the class? sorry for the stupid question
i guess i waas expected to somthing like this

class FakeDict:
  def _init_(self):
      self.attribute="Cool"

fake_dict = FakeDict()


dir(fake_dict)

that’s not different
self and fake_dict refer to the same thing, that’s the same operation

so i can declare instance variable of an object, in the main? outside the class?

there’s nothing special about code in a class whatsoever
and nothing is declared in python, not a thing