점프 투 파이썬, 클래스 생성시 self 문의 드립니다.

201쪽 내용입니다. 클래스에 관해 배우던중에서 이해가 가지 않는 부분 문의 드립니다.~

class HousePark:
    lastname = '박'
    def setname(self, name):
        self.fullname = self.lastname + name

    def travel(self, where):
        print("%s, %s여행을 가다." %(self.fullname, where))

위 클래스를 보면

travel 메소드에서
self.where = where
라는 것이 없습니다.

전달 받은 인자를 사용하기 위해서 보통
self.인자이름 = 인자이름
이런식으로 배워서
저는

class HousePark:
    lastname = '박'
    def setname(self, name):
        self.fullname = self.lastname + name

    def travel(self, where):
                self.where = where
        print("%s, %s여행을 가다." %(self.fullname, self.where))

이렇게 해야지 된다고 생각했는데, 그냥 where 인자가 사용되었네요

"self.인자이름 = 인자이름 "을 선언하는경우와 선언하지 않는 경우는 어떤차이가 있는지 궁금합니다.

ilue00 479

2021년 3월 5일 9:19 오후

목록으로
2개의 답변이 있습니다. 1 / 1 Page

self.where 는 HousePark 클래스로 만들어진 객체의 객체변수 where를 의미합니다.
travel 메서드의 where 매개변수는 객체변수가 아니라 그냥 travel 메서드에서 사용된 함수에서만 사용되는 변수입니다.

박응용

2021년 3월 5일 11:31 오후

이렇게 엄청난 뜻이 숨어있었군요
자세한 설명 감사드립니다.

ilue00

2021년 3월 7일 9:34 오전