title: difference between F(x) and F x in Python
body: <p>In Python it is possible to call either <code>del x</code> or del (x) . I know how to define a function called F(x) , but I do not know how to define a function that cal be called like <code>del</code>, without a tuple as parameters.</p>
  
  <p>What is the difference between <code>F x</code> and <code>F(x)</code>, and how can I define a function that can be called without parenthesis ?</p>
  
  <pre><code>&gt;&gt;&gt; a = 10
  &gt;&gt;&gt; a
  10
  &gt;&gt;&gt; del a             &lt;------------ can be called without parenthesis
  &gt;&gt;&gt; a
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  NameError: name 'a' is not defined
  &gt;&gt;&gt; a = 1
  &gt;&gt;&gt; del (a)
  &gt;&gt;&gt; a
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  NameError: name 'a' is not defined
  &gt;&gt;&gt; def f(x): 1
  ... 
  &gt;&gt;&gt; f (10)
  &gt;&gt;&gt; print f (10)
  None
  &gt;&gt;&gt; def f(x): return 1
  ... 
  &gt;&gt;&gt; print f (10)
  1
  &gt;&gt;&gt; f 1                  &lt;------   cannot be called so
    File "&lt;stdin&gt;", line 1
      f 1
        ^
  SyntaxError: invalid syntax
  &gt;&gt;&gt; 
  </code></pre>