Я использую следующий питонический подход к этой проблеме.isinstance()
звонки не требуются.Поэтому он даже работает с различными пользовательскими классами строк C ++, которые я обернул в python.Я не думаю, что эти методы на основе isinstance () будут работать в этих случаях.Кроме того, OP явно попросил решение, которое , а не включает проверку типов.Поведение проверки Pythonistas, а не тип.
Хитрость здесь заключается в том, что строки имеют необычное свойство: первый элемент строки из одного символа - это та же строка из одного символа.
"f"[0] == "f"
Это работает в Python 2.x:
def is_string(s):
try:
if (s[0] == s[0][0]):
return True
except:
pass
return False