title: String concatenation vs. string substitution in Python
body: <p>In Python, the where and when of using string concatenation versus string substitution eludes me. As the string concatenation has seen large boosts in performance, is this (becoming more) a stylistic decision rather than a practical one?</p>
  
  <p>For a concrete example, how should one handle construction of flexible URIs:</p>
  
  <pre><code>DOMAIN = 'http://stackoverflow.com'
  QUESTIONS = '/questions'
  
  def so_question_uri_sub(q_num):
      return "%s%s/%d" % (DOMAIN, QUESTIONS, q_num)
  
  def so_question_uri_cat(q_num):
      return DOMAIN + QUESTIONS + '/' + str(q_num)
  </code></pre>
  
  <p>Edit: There have also been suggestions about joining a list of strings and for using named substitution. These are variants on the central theme, which is, which way is the Right Way to do it at which time? Thanks for the responses!</p>