2 つの文字列変数が同じ値に設定されます。s1 == s2
は常に を返しますTrue
が、s1 is s2
を返す場合もありますFalse
。
Python インタープリターを開いて同じis
比較を行うと、成功します。
>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True
どうしてこれなの?
ベストアンサー1
is
は同一性テスト、 は==
等価性テストです。コード内で発生することは、インタープリタ内で次のようにエミュレートされます。
>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
だから、同じではないのも不思議ではないですよね?
言い換えるとa is b
、id(a) == id(b)