1. 程式人生 > >Python之is與==的區別

Python之is與==的區別

is Python

首先看幾個例子:

# -*-coding=utf-8 -*-
a="Hello Python"
b="Hello Python"
print (a is b)    #結果是:True
print (a == b)    #結果是:True
a=[1,2,3]
b=[1,2,3]
print (a is b)    #結果是:False
print (a == b)    #結果是:True
a=[1,2,3]
b=a
print (a is b)    #結果是:True
print (a == b)    #結果是:True

運行結果:

True
True
False
True
True
True

is 表示同一性測試

== 表示比較

程序在查檢a is b時,表示id(a)==id(b),而檢查a==b時,調用對象__eq__()方法,相當於a.__eq__(b)

a="Hello Python"
b="Hello Python"
print (id(a),id(b))
a=[1,2,3]
b=[1,2,3]
print (id(a),id(b))
a=[1,2,3]
b=a
print (id(a),id(b))

運行結果:

(82999696L, 82999696L)
(83640456L, 83756168L)
(83757576L, 83757576L)


Python之is與==的區別