используя метод заглавных букв прямо в методе форматирования в python

string_ = "hello world"
print("{0[1].capitalize()} {0[0].capitalize()}".format(string_.split(" ")))

с запуском этого я получаю

AttributeError: 'str' object has no attribute 'capitalize()'

пожалуйста, скажите мне, что не так, потому что в строковом методе есть метод капитализации!

dir(string_)
Out[108]: 
[...
 'capitalize',
 ...]

person WorldLover    schedule 06.02.2021    source источник
comment
Чего вы пытаетесь достичь?   -  person Tom S    schedule 06.02.2021
comment
Вы можете сделать это только в f-струнах; не в формате vanilla str.format.   -  person jonrsharpe    schedule 06.02.2021
comment
@DeepSpace Я думаю, что метод форматирования не использует полный синтаксический анализатор, а просто разбивает на точки.   -  person jonrsharpe    schedule 06.02.2021
comment
@jonrsharpe Да, он также может использовать getattr, но случайно передать (), что странно. Например, getattr('a', 'capitalize()'), конечно, выдаст ту же ошибку. Это позор   -  person DeepSpace    schedule 06.02.2021