title: What is the difference between calling function with parentheses and without in python?
body: <p>I have a question. Lets assume that we have function hello(). What is the difference between calling it with parentheses and without? When I call hello() it is referring to an object with value equals this function. Or maybe am I wrong? What happens when I call it without parentheses?</p>
  
  <p>I wonder why </p>
  
  <pre><code>def hello():
      pass
  
  print(id(hello))
  print(id(hello()))
  </code></pre>
  
  <p>returns different results</p>
  
  <pre><code>4400606744
  4398942536
  </code></pre>