Rozumiem, że powinniśmy używać %s
do konkatenacji łańcucha zamiast +
w Pythonie.
Mógłbym wykonać dowolną z następujących czynności:
hello = "hello"
world = "world"
print hello + " " + world
print "%s %s" % (hello, world)
print "{} {}".format(hello, world)
print ' '.join([hello, world])
Ale dlaczego miałbym używać czegoś innego niż +
? Szybsze jest pisanie konkatenacji za pomocą prostego +
. Następnie, jeśli spojrzeć na ciąg formatowania, można określić na przykład rodzaje %s
i %d
oraz takie. Rozumiem, że lepiej byłoby wyraźnie powiedzieć o typie.
Ale potem przeczytałem, że +
należy unikać używania do konkatenacji, chociaż łatwiej jest pisać. Czy istnieje wyraźny powód, dla którego łańcuchy powinny być łączone na jeden z tych innych sposobów?
%s
Nie jest łączenie, to opis konwersji do formatowania łańcuch pochodzący z C na printf(3)
. Istnieją przypadki użycia tego lub operatora konkatenacji; których używasz, powinny opierać się na ocenie sytuacji, a nie dogmatach. To, jak łatwo jest napisać kod, jest całkowicie nieistotne, ponieważ zrobisz to tylko raz.
print(f"{hello} {world}")
, ma czytelność konkatenacji, ponieważ zmienne są widoczne tam, gdzie występują w ciągu, i jest szybszy niż str.format
.