SORU
8 EYLÜL 2009, Salı


Python: ("Merhaba" "Merhaba")?Neden

Neden Python "hello" is "hello" == True?

Aşağıdaki here okudum:

"If two string literals are equal, they have been put to same
 memory location. A string is an immutable entity. No harm can
 be done."

Ve her dizesi Python için bellekte tek bir yer bile yok. Kulağa oldukça garip. Burada neler oluyor?

CEVAP
8 EYLÜL 2009, Salı


Ve her dizesi Python için bellekte tek bir yer bile yok.

Hayır, sadece bir karar dil belirtimi parçası olmayan bir politikasına dayanan ve farklı CPython sürümlerinde değişebilir tercüman optimize etmek için karar vermiş olanlar.

örn. benim yükleyin (2.6.2 Linux):

>>> 'X'*10 is 'X'*10
True
>>> 'X'*30 is 'X'*30
False

in: aynı şekilde

>>> 2**8 is 2**8
True
>>> 2**9 is 2**9
False

Çok güvenmeyin '''': sadece C uygulaması güvenli değil bakmıyordum bile. dize dize

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • Matt Steffanina

    Matt Steffan

    1 EYLÜL 2011
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009