Existe alguma diferença entre:
if foo is None: pass
e
if foo == None: pass
A convenção que eu já vi na maioria dos códigos Python (e no código que eu mesmo escrevo) é a primeira, mas recentemente me deparei com um código que usa a segunda. Nenhuma é uma instância (e a única instância, IIRC) de NoneType; portanto, isso não importa, certo? Existem circunstâncias em que isso possa acontecer?