코드를 실행시켜 보면 이름이 move인 변수와 함수가 없다는 에러가 발생합니다. 이는 self라는 객체 자신을 가리키는 키워드를 이용하지 않아서 move가 객체 내부에 정의된 것이 맞는지 찾아내지 못했기 때문입니다.
결국 self는 클래스로 생성될 객체 자신을 가리키는 이름 의미 그대로 가지고 있습니다. 쉽게 이해하면 self는 그냥 객체 자신이며, 클래스에서 사용하는 변수와 함수에는 self를 이용한 접근이 필요하다고 간단히 생각해도 좋습니다.
self는 클래스 함수를 호출할 때 자동으로 전달되기 때문에 프로그래머가 따로 전달하지 않고도 다음과 같이 사용할 수 있다고 설명했습니다.
robot1.move_left()
하지만 move 함수는 self를 제외한 direction이라는 매개변수를 선언했으므로 함수를 사용할 때 매개변수를 전달해야 합니다.
robot1.move("Left")