파이썬에서 객체 생성과 관련해 생성자(__new__) 질문드려요.

조회수 668회

질문1

클래스로 객체를 생성할 경우, 클래스에 생성자 함수(__new__)가 없어도 클래스로 객체를 생성할 수 있잖아요. 이때 파이썬 내부적으로는 사용자정의 클래스에 생성자가 없을 경우 최상위 클래스인 object클래스의 __new__ 가 자동으로 실행되어 객체를 생성하고 그 객체를 반환받아 사용자정의 클래스의 객체가 되는 것인가요?

질문2

그렇다면 object클래스를 사용자가 임의의 변수 이름으로 사용해서 덮어쓰면(예 object = 1234) 사용자정의 클래스의 객체를 원천적으로 생성할 수 없게 되나요?

그런데 실제로 해보니 object를 임의의 다른 값으로 덮어써도 사용자 정의 클래스로 객체가 생성되네요.

클래스와 객체는 공부할수록 헷갈리는 게 많네요.

  • 음...파이썬으로 객체지향 공부를 하지 마세요. java, c++, c# 같은 다른 언어로 하세요. 정영훈 2020.5.22 10:43
  • 객체지향만 따로 떼서 공부하는 것이 아니라, 그냥 프로그래밍 언어 초심자로서 파이썬 배우고 싶어서 책 순서대로 공부하다보니 ... 그런데 왜 파이썬으로 객체지향 공부 하지 마라는지 이유 알 수 있을까요? 알 수 없는 사용자 2020.5.22 11:16
  • 파이썬 객체지향 지원이 prototype 수준입니다. 구체적인 예를 들면 캡슐화가 안되고 인터페이스나 추상클래스가 없습니다. 물론 abc 모듈을 이용해서 흉내는 낼 수 있습니다만...언어 차원에서 지원되는 것이 아닙니다. 정영훈 2020.5.22 11:27
  • 개인적으로 파이썬은 프로그래밍에 능숙한 사람이 생산성을 얻기 위해 사용하는 유틸리티성의 언어라고 생각합니다. 체계적인 학습이 필요한 입문자나 학생에 권하기는 애매하지 않나 싶습니다. 파이썬 런타임에서 개발자 대신 해주는 것들이 많다보니 오류를 만났을때 오히려 더 어렵게 됩니다. 정영훈 2020.5.22 11:36
  • 설명 감사합니다.^^ 저는 취미로 프래그래밍언어 하나 배우면 좋을듯해서.. 파이썬이 그나마 초보자가 접근하기 쉬운 것도 같고, 무엇보다 기본적인 문법만 알면 이미 고수님들이 만들어놓은 유용한 모듈을 그대로 갖다 쓸 수 있는 실용적인 언어인 것 같고(특히 인공지능 관련해서) .. 그런데 설명을 듣고 보니 파이썬 배우는 목적을 다시 한 번 생각해보게 되는 계기가 되었습니다. 감사합니다.^^ 알 수 없는 사용자 2020.5.22 12:09

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)