25 EYLÜL 2008, PERŞEMBE
`==` Ve `` Python ile arasında bir fark var mı?
Benim Google-fu beni hayal kırıklığına uğrattı.
Python, eşitlik eşdeğer (ha!) için aşağıdaki iki test yapacağız?
n = 5
# Test one.
if n == 5:
print 'Yay!'
# Test two.
if n is 5:
print 'Yay!'
Bu örnekleri (list
) söylemek karşılaştırarak ne gerçek nesneleri için de geçerli mi?
Tamam, cevap bu tarz benim sorum şu:
L = []
L.append(1)
if L == [1]:
print 'Yay!'
# Holds true, but...
if L is [1]:
print 'Yay!'
# Doesn't.
==
is
eğer aynı nesne olup olmadıklarını görmek için test nerede değer testleri?
CEVAP
25 EYLÜL 2008, PERŞEMBE
is
nesneleri değişkenleri tarafından sevk eşitse aynı nesne, ==
11 *eğer iki değişken nokta dönecektir.
>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
Senin durumunda, ikinci test sadece Python önbelleğe nedeniyle uygulama ayrıntı olan küçük tamsayı nesneleri, çalışır. Daha büyük tamsayılar için, bu çalışmıyor:
>>> 1000 is 10**3
False
>>> 1000 == 10**3
True
Aynı dize hazır bilgi için: geçerlidir
>>> "a" is "a"
True
>>> "aa" is "a" * 2
True
>>> x = "a"
>>> "aa" is x * 2
False
>>> "aa" is intern(x*2)
True
this question de bakın lütfen.
Bunu Paylaş:
Tüm bu OpenCV Python arabirimleri aras...
@Staticmethod ve @Python classmethod a...
Ne fark var arasında #include <file...
SENDİKA ve SENDİKA arasında ne fark va...
Eski stil ve yeni stil Python sınıflar...