SORU
30 Aralık 2009, ÇARŞAMBA


İsinstance arasındaki fark nedir('aaa', basestring) ve isinstance('aaa', str)?

a='aaaa'
print isinstance(a, basestring)#true
print isinstance(a, str)#true

CEVAP
30 Aralık 2009, ÇARŞAMBA


Python sürüm 3.0 için önce dizeleri iki tür "düz dizeleri" ve "unicode dizeleri". Düz dizeleri (str) Latin alfabesi (sadelik için kod sayfaları detayları görmezden) dışında karakter temsil edemez. Unicode dizeleri (unicode) Klingon gibi bazı hayali olanlar da dahil olmak üzere herhangi bir alfabe karakteri temsil edebilir.

Neden dizeleri iki tür, tüm davaları kapsayacak beri sadece Unicode için daha iyi olurdu değil mi? İyi iyi sadece Unicode olur ama Python Unicode temsil eden dizeleri için tercih edilen yöntem önce oluşturuldu. Pek çok kullanıcı bir dilde dize türü geçiş için zaman alır, Python 3.0 nihayet tüm dizeleri Unicode durumu söz konusu değildir.

Python dizeleri-3.0 ön devralma hiyerarşisi

          object
             |
             |
         basestring
            / \
           /   \
         str  unicode

'basestring' sunulan Python 2.3 olabilir düşünce olarak bir adım yönünde dize birleşme olarak kullanılabilir olup olmadığını kontrol etmek için bir nesne örneği str unicode

>>> string1 = "I am a plain string"
>>> string2 = u"I am a unicode string"
>>> isinstance(string1, str)
True
>>> isinstance(string2, str)
False
>>> isinstance(string1, unicode)
False
>>> isinstance(string2, unicode)
True
>>> isinstance(string1, basestring)
True
>>> isinstance(string2, basestring)
True

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011