isupper
- это атрибут строки letter
, поэтому Python подходит для вашего доступа.
>>> letter = 'a'
>>> letter.isupper
<built-in method isupper of str object at 0x0000028258E80170>
Это метод isupper
строки. Вы не вызывали его (нет ()
), но это не синтаксическая ошибка.
В логическом контексте (if letter.isupper
) Python проверяет, является ли bool(letter.isupper)
True
или False
.
>>> bool(letter.isupper)
True
Любой метод является «правдивым» (bool
возвращает True
), поэтому вводится блок if
.