• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

질문입니다..

22.02.14 00:11 작성 조회수 123

1

# 인스턴스 설정
siri = Siri("iphone8", 5)
print(Siri.mro())
print(Robot.mro())


# int도 클래스이다
A = int(12)
print(int.mro())

#출력
print(siri)
print(A)
안녕하세요? 강의 잘 듣고 있습니다... 뭔가 정리가 안되기도 해서 여쭤봅니다 ㅠㅠ
1. int가 클래스이므로, A는 변수이면서도 int라는 클래스의 인스턴스 인건가요?(즉 그냥 관점에 따라 변수라고 부를수도, 인스턴스라고 부를수도 있는 것인가요?)
2. siri를 출력하면 <__main__.Siri object at 0x00000178D25F5AC0>와 같은식으로 메모리주소가 나오는 반면,
A를 출력하면 12가 출력됩니다.
이는 선생님 말씀대로 파이썬 개발자들이 int의 인스턴스를 출력했을 때, 저런식으로(12가 출력되도록) 설정을 따로 해두었기 때문에 가능한건가요?
3. 그래서 실제로 int클래스가 어떤식으로 처리되어 있는지 한번 찾아보고 싶어서 int클래스를 따라가봤더니 굉장히 복잡하게 되어있더라구요.. 이런부분은 음.. 그냥 그렇구나~ 하고 넘어가면 되는 부분인지.. 선생님은 어떤식으로 공부하셨느지 한번 여쭤보고싶습니다
 
좋은 강의 감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요!

1. 네 맞습니다. int는 파이썬 내부에서 정의된 클래스입니다.

2. 네 정확히 이해하셨습니다! 👍

3. 사실 파이썬을 사용하는 응용 프래그래머는 int나 str은 파이썬 내부에서 빌트인된 클래스이구나 정도까지만 이해하셔도 좋습니다. 또한 파이썬 공식문서를 깊게 읽어보시는 것을 추천드립니다. 심도 있게 탐구하고 싶으시다면 "파이썬의 구현체 (CPython 등)", "인터프리터 구현체 개발" 등등을 공부해보시는 것을 추천드립니다. 저는 Row 단계 언어 Go, Rust, C++ 등으로 간단한 인터프리터를 개발하는 식으로 깊게 공부했었습니다. 

김영빈님의 프로필

김영빈

질문자

2022.02.15

답변 감사합니다~