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

  • ibebrent

    ibebrent

    23 Temmuz 2007
  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008