Gerçekten herhangi bir "ham dize " yoktur; açılış dizgesinden önce bir ile işaretlenmiş dize değişmez değerleri olan ham dize değişmez değerleri vardır 'r'
.
"Ham dize değişmez değeri", ters eğik çizginin \
"yalnızca ters eğik çizgi" anlamına geldiği bir dizgi değişmezinin biraz farklı bir sözdizimidir. yeni satırları, sekmeleri, arka boşlukları, form beslemelerini vb. temsil etmek için "kaçış dizileri". Normal dizgi değişmezlerinde, bir kaçış dizisinin başlangıcı olarak alınmamak için her ters eğik çizginin iki katına çıkarılması gerekir.
Bu sözdizimi varyantı çoğunlukla düzenli ifade desenlerinin sözdizimi ters eğik çizgilerle ağır olduğu için (ancak asla sonunda değil, bu nedenle yukarıdaki "hariç" maddesi önemli değildir) ve her birini ikiye katlamaktan kaçındığınızda biraz daha iyi görünüyor - - bu kadar. Ayrıca yerel Windows dosya yollarını (diğer platformlarda olduğu gibi normal eğik çizgiler yerine ters eğik çizgilerle) ifade etmek için biraz popülerlik kazandı, ancak bu çok nadiren gerekli (normal eğik çizgiler çoğunlukla Windows'ta da iyi çalıştığı için) ve kusurlu ("hariç" cümlesi nedeniyle) ile elde edilmiş).
r'...'
(Python 2. * olarak) bir bayt dize olan ur'...'
bir Unicode dizesi (yine Python 2. *), ve alıntı diğer üç çeşit herhangi ayrıca dizeleri tam olarak aynı tip üretir (dolayısıyla örneğin r'...'
, r'''...'''
, r"..."
, r"""..."""
hepsi bayt dizeleridir vb.).
" Geri dönerek " ne demek istediğinizden emin değilsiniz - özünde geri ve ileri yönler yoktur, çünkü ham dize türü yoktur , sadece normal dize nesnelerini, bayt veya unicode'u olabildiğince ifade etmek için sadece alternatif bir sözdizimi.
Ve evet, Python 2. * daki, u'...'
olduğu gibi farklı ders her zaman '...'
- Eski bir Unicode dize, ikincisi bir bayt dizisidir. Değişmezi kodlayan şey tam olarak dik bir konudur.
Örneğin, düşünün (Python 2.6):
>>> sys.getsizeof('ciao')
28
>>> sys.getsizeof(u'ciao')
34
Unicode nesnesi elbette daha fazla bellek alanı kaplıyor (çok kısa bir dize için çok küçük fark, tabii ki ;-).