В 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."
... и вот так, чтобы заставить его работать как для пустых строк в un-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""
кажется слишком жестко закодированной для меня. Но если это лучший способ сделать это, пусть будет так.:) Спасибо за любую помощь, которую вы можете предложить.