В Python 2.7 я пишу класс, который вызывает функцию в API, которая может возвращать или не возвращать пустую строку.Кроме того, пустая строка может быть Unicode u""
или не Unicode ""
.Мне было интересно, что лучший способ проверить это?
Следующий код отлично работает для пустой строки, но не для пустой строки в Юникоде:
class FooClass():
string = ...
string = might_return_normal_empty_string_or_unicode_empty_string(string)
# Works for normal empty strings, not unicode:
if string is not None:
print "string is not an empty string."
Вместо этого мне придетсянапишите это так, чтобы заставить его работать для Unicode:
class BarClass():
string = ...
string = might_return_normal_empty_string_or_unicode_empty_string(string)
# Works for unicode empty strings, not normal:
if string is not u"":
print "string is not an empty string."
... и вот так, чтобы заставить его работать как для пустых строк в не-Unicode, так и Unicode:
class FooBarClass():
string = ...
string = might_return_normal_empty_string_or_unicode_empty_string(string)
# Works for both normal and unicode empty strings:
if string is not u"" or None:
print "string is not an empty string."
Третий метод - лучший способ сделать это, или есть лучший способ?Я спрашиваю, потому что написание u""
кажется мне слишком жестким.Но если это лучший способ сделать это, пусть будет так.:) Спасибо за любую помощь, которую вы можете предложить.