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

  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009