Pourquoi les fonctions devraient-elles toujours retourner le même type?

J'ai lu quelque part que les fonctions doivent toujours retourner qu'un seul type de
ainsi, le code suivant est considéré comme un mauvais code:

def x(foo):
 if 'bar' in foo:
  return (foo, 'bar')
 return None

Je suppose que la meilleure solution serait

def x(foo):
 if 'bar' in foo:
  return (foo, 'bar')
 return ()

Ne serait-il pas moins cher de la mémoire de sage-retour d'un rien, puis de créer un nouveau tuple vide ou est-ce la différence de temps trop petite pour avis, même dans les grands projets?

source d'informationauteur self.self