Проверьте значение str
еще раз. Если ваш тест не пройден, str
не является специальным None
объектом. Предположительно str - это строка 'None'
.
>>> str = None
>>> str == None
True
>>> str = 'None'
>>> str == None
False
>>> print str
None
Судя по вашим комментариям, str
на самом деле u'None'
, что является строкой типа unicode
. Вы можете проверить это следующим образом:
>>> s = unicode('None')
>>> s
u'None'
>>> print s
None
>>> s == 'None'
True
Теперь, хотя вы могли бы это сделать, я подозреваю, что ваша проблема кроется в другом месте. Код вызова должен преобразовывать этот объект в строку, например, с помощью unicode(None)
. Скорее всего, было бы лучше, если бы вызывающий код преобразовывался только в строку, если объект не None
.