SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Madeon

    Madeon

    31 Ocak 2010
  • Submissions101

    Submissions1

    23 ŞUBAT 2007
  • TopOfTheTech

    TopOfTheTech

    5 NİSAN 2010