jo2203   4년 전

파이썬 클래스 공부를하다 이해가 안되는게 있어 질문합니다.

코드는 아래와같이 작성한 코드입니다.

a.add()는 a라는 객체안에 있는 함수의 주소값이라는것을 알겠습니다.

그런데 a.add는 대체 어떤 주소를 반환해 주는건가요?

그리고또  FourCal.add()는 반환되는값이 없는데 FourCal.add가 무엇을 가르키는건가요??

함수마다 주소가 있는건 알고 있었는데 이렇게 확인해보다가 이해가 잘되지않아서 질문드립니다.ㅠㅠ

결과 콘솔

dyk777   4년 전

조금 반대로 알고 계신 것 같습니다.

id(a.add())는 a.add()를 호출한 결과에 대하여 id()를 한 겁니다.

즉, a라는 인스턴스에 대해 add()라는 메소드를 호출한 그 반환값에 id()를 적용한 거죠.

id(a.add)가 함수의 id를 반환합니다.

같은 맥락으로, id(FourCal.add)는 FourCal이라는 클래의 메소드 add의 id를 반환하지만,

id(FourCal.add())는 애초에 인스턴스가 아닌데 인자로 self를 넘겨서 호출하고 있으니 오류가 나는 것입니다.

댓글을 작성하려면 로그인해야 합니다.