title: What does "if not" mean here?
body: <pre><code> def santa(*says):
      if not says:
          return "ho! xmas!"
      else:
          return says[0]+"! "+santa(*says[1:])
  </code></pre>
  
  <p>This is a recursive function with positional argument syntax that has troubled my understanding. What does "<code>if not says</code>" mean? Is it equal to "<code>if says == False</code>"? Or "<code>if says is None</code>"? Because if I substitute it with either of both, it gives an error. </p>
  
  <p>How does it link to:</p>
  
  <p><code>print(santa())</code></p>
  
  <p>which has no arguments and outputs</p>
  
  <pre><code>"ho! xmas!"
  </code></pre>
  
  <p>meaning that it satisfies the first conditional statement. </p>