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ş:
Neden bu kod rastgele dizeleri yazdırm...
Ruby's `s= " Merhaba, %s Python e...
Neden&; Merhaba&; '/' "...
Bu nasıl baskı&; Merhaba Dünya""?...
Neden Python's "Ekle" d...