title: Python property detail
body: <p>I would like to deleve into python's properties mechanizm and understand this behaviour:</p>
  
  <pre><code>class MyClass:
      @property
      def name(self):
          return 'MyClass'
  
  print(type(MyClass.name)) # gets &lt;class 'property'&gt;
  mc = MyClass()
  print(type(mc.name)) #gets &lt;class 'str'&gt;
  </code></pre>
  
  <p>My question is: what happens underneath? Does it mean that there are two different mechanizms of variable look-up for classes and objects?</p>