¿Por qué algunos métodos usan notación de puntos y otros no?

Entonces, estoy empezando a aprender Python (usando Codecademy), y estoy un poco confundido.

¿Por qué hay algunos métodos que toman un argumento y otros usan la notación de puntos?

len () toma un argumento, pero no funcionará con la notación de punto:

>>> len("Help")
4
>>>"help".len()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'len'

Y de la misma manera:

>>>"help".upper()
'HELP'
>>>upper("help")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'upper' is not defined

Respuestas a la pregunta(3)

Su respuesta a la pregunta