変数の型が文字列かどうかを調べるには?

pythonの変数の型がstringであるかどうかを確認する方法はありますか?

isinstance(x,int);

整数値の場合は?

Python 2.xでは、次のようにします。

isinstance(s, basestring)

basestringstrunicodeの [abstract superclass](https://docs.python.org/2/library/functions.html#basestring)です。あるオブジェクトがstrunicode` のインスタンスであるかどうかをテストするのに使用できます。


Python 3.xでは、正しいテストは

isinstance(s, str)

Python 3 では bytes クラスは文字列型とはみなされません。

解説 (6)

intsやstring以外もチェックする場合は、typeモジュールも存在します。 http://docs.python.org/library/types.html

解説 (2)

以下のより良い答えに基づいて編集します。 答えを3つほど下に下げて、basestringのかっこよさを知りましょう。

古い答えです。 ユニコード文字列に注意してください。ユニコード文字列は、WindowsのすべてのCOMコールを含むいくつかの場所から得ることができます。

if isinstance(target, str) or isinstance(target, unicode):
解説 (4)