일급 객체, 이급 객체를 구분하는 이유와 이 구분을 무엇이라 합니까?

"파이썬 내의 객체는 모두 다 일급객체이다" 라는 문장을 잘 이해하지 못하고 있습니다. 일급 객체가 무엇인지는 대충 설명을 보니 알 것 같은데,

  1. 이것을 구분하는 실익과
  2. 일급 객체, 이급 객체, 3급 객체 식으로 객체의 등급을 나누는 것을 무엇이라고 합니까?

그러니까..... "소고기 등급제" 같은 등위의 이름이 알고 싶습니다.

1답변

  • 일급객체 조건이란

    객체를 변수나 list 같은 컬렉션에 담을 수 있다. 함수나 메소드 파라미터로 전달 할 수 있다 함수나 메소드의 리턴값으로 사용할 수 있다.

    등이 있습니다.

    우리가 많이 사용하는 언어중 자바스크립트, 파이썬이 일급객체 언어이고 c, pascal,c++은 아닙니다.

    자바스크립트나 파이썬을 보면 함수명을 파라미터로 전달 할 수 있고 그렇게 전달한 함수를 다른 함수내에서 사용할 수 있습니다. 그러나 c를 보면 불가능하죠 함수포인터를 이용해서 전달해야 합니다.

    마찬가지로 리턴타입으로도 파이썬은 자유롭게 보낼 수 있지만 c는 역시 포인터를 리턴해야 합니다.

    즉 파이썬에서 함수나 메소드는 일급객체입니다만 c에서는 아니라는거죠. 뭐 좋고 나쁘고 이런 개념은 아닙니다.

    다만 일급객체의 특성은 특히(당연히) 함수형 언어들에서 중요한 포인트입니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.