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

  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • pjtoohot

    pjtoohot

    15 NİSAN 2008
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014