Python'da bir dizeyi biçimlendirmenin en az altı yolu vardır:
In [1]: world = "Earth"
# method 1a
In [2]: "Hello, %s" % world
Out[2]: 'Hello, Earth'
# method 1b
In [3]: "Hello, %(planet)s" % {"planet": world}
Out[3]: 'Hello, Earth'
# method 2a
In [4]: "Hello, {0}".format(world)
Out[4]: 'Hello, Earth'
# method 2b
In [5]: "Hello, {planet}".format(planet=world)
Out[5]: 'Hello, Earth'
# method 2c
In [6]: f"Hello, {world}"
Out[6]: 'Hello, Earth'
In [7]: from string import Template
# method 3
In [8]: Template("Hello, $planet").substitute(planet=world)
Out[8]: 'Hello, Earth'
Farklı yöntemlerin kısa bir geçmişi:
printf
-stili biçimlendirme Pythons'un bebeklik döneminden beri varTemplate
Sınıf Python 2.4 kullanılmaya başlandıformat
Yöntem Python 2.6 tanıtıldıf
-strings Python 3.6'da tanıtıldı
Sorularım:
printf
-Style biçimlendirme kullanımdan kaldırıldı mı yoksa kullanımdan kaldırılacak mı?- Yılında
Template class
olduğusubstitute
yöntem eskimiştir veya kullanım dışı olacak? (Anladığımsafe_substitute
kadarıyla benzersiz yetenekler sunduğundan bahsetmiyorum )
Benzer sorular ve neden bunların yinelenmediğini düşünüyorum:
Python dizesi biçimlendirmesi:% ve .format - yalnızca 1. ve 2. yöntemleri ele alır ve hangisinin daha iyi olduğunu sorar; Sorum açıkça Python Zen ışığında kullanımdan kaldırma ile ilgili
Dize biçimlendirme seçenekleri: artılar ve eksiler - yalnızca soruda 1a ve 1b, yanıtta 1 ve 2 yöntemlerini ve ayrıca kullanımdan kaldırmayla ilgili hiçbir şeyi ele almaz
gelişmiş dize biçimlendirmesine karşı şablon dizeleri - çoğunlukla yöntem 1 ve 3 hakkındadır ve kullanımdan kaldırmaya değinmez
Dize biçimlendirme ifadeleri (Python) - yanıt , orijinal '%' yaklaşımının kullanımdan kaldırılmasının planlandığından bahsediyor . Ama arasındaki fark nedir kaldırılacaktır planlanan , Kullanımdan kaldırmayı bekleyen ve fiili Kullanımdan kaldırmayı ? Ve
printf
-style yöntemi a bile yükseltmiyorPendingDeprecationWarning
, bu yüzden bu gerçekten kullanımdan kaldırılacak mı? Bu gönderi de oldukça eski olduğu için bilgiler güncel olmayabilir.
Formatter
mı?