틀린 말은 없는데 입문용으로 좋은 설명은 아닌 거 같음. 자기 자신(객체, 인스턴스)에 대한 주소 정보를 파라미터로 왜 넘겨주는지 실용적인 측면에서 좀더 부연설명해보자면
def set_x(self, xpos=0) :
self.xpos = xpos
이런 메소드를 만들었는데 (멤버변수로 xpos가 있다고 가정) 만일 self가 없다면 함수 밑에 실행문을 xpos = xpos로 쓸 수밖에 없음. 이러면 인터프리터 입장에서는 왼쪽의 xpos가 파라미터로 받은 xpos인지, 멤버변수의 xpos인지 분간할 수가 없음. 그래서 self를 앞에 붙여주면 객체의 멤버변수 안에서 찾으라는 의미가 되는 거임