아하
생활

생활꿀팁

근사한지어새217
근사한지어새217

type함수의 결과값으로 object 혹은 class로 나오는데, type(1234)하면 당연히 int object로 나와야 하지 않나요?

어떤 변수의 type를 확인할 경우가 종종 있는데, 그 결과값에는 class 땡땡, 혹은 땡땡 object로 대부분 출력됩니다. 그런데 명백하게 어떤 클래스의 객체임에도 굳이 class ~로 출력하는 이유가 무엇일까요?

예를 들면 숫자 1234의 타입을 확인해 보면 class int라고 나옵니다. 그런데 1234는 클래스가 아니라 int class로 생성된 오브젝트로 알고 있습니다. 그럼 당연히 1234는 클래스가 아니라 클래스로 만들어진 int 오브젝트로 출력되어야 하지 않는지요? 1234로 객체를 만들 수 있는 것도 아니니...

class A: pass

a = A()

type(a) 하면 class A object가 되는 것처럼...

    55글자 더 채워주세요.
    1개의 답변이 있어요!
    • 프알못
      프알못

      1234가 int class로 생성된 오브젝트인 건 맞습니다.

      class A: pass a = A()

      그리고 여기서의 a 역시 클래스가 아니라 A class로 생성된 오브젝트입니다.

      type은 어떤 클래스의 객체인지, 그 클래스를 알려줍니다.

      1234()로 다른 객체를 만들 수 없는 것처럼, a()로 다른 객체를 만들 수 없습니다.

      ※ 파이썬은 버전을 많이 타서, 어떤 버전인지 꼭 알려주시는 게 좋습니다.

      type(a)의 결과가 어떻게 나오나요? 저는 <class '__main__.A'>으로 나오는데...