본문 바로가기

프로그래밍 기술 노트/기타 정보

왜 파이썬은 self를 사용하고 C++, java, c# 은 this는 사용하는가?

그냥 아무 이유 없이 갑자기 궁굼해졌다

자기자신을 의미할때 C++ 에서는 "this" 라는 키워드를 사용하고 파이썬은 "self"라는 키워드를 사용한다. C++ 의 this는 keyword 이고 파이썬은 단지 개발자가 self라고 변수명을 그렇게 지칭하는것뿐이지만

관례적으로 self를 사용한다.

C++ 은 83년, 파이썬은 91년에 나왔으니까 관례적으로 this를 사용해야 맞는거 같은데 self를 사용한다.

이 이유가 너무 궁금해서 찾아봤는데 망할 this 랑 self <- 이거 단어가 너무 자주쓰이는 단어라 자기자신을 가르키는 keyword 로 검색이 안된다.

처음 생각이 객체지향의 시초인 smalltalk 때문인거 같아 스몰토크에서 사용하는 키워드를 찾아봤는데

역시나 smalltalk 에서 self 를 쓴다.

근데 그렇게 되면 C++은 왜 검색하기도 힘들게 self 가 아닌 this 를 사용했을까?

이것도 또 검색해봤는데..

 

개발자의 영원한 친구 킹갓플로우의 답변에 댓글로 적혀있는 글이있다.

https://stackoverflow.com/questions/1079983/why-do-pythonistas-call-the-current-reference-self-and-not-this

Most people doing OOP in C, such as with gobject use self specifically to avoid reserved keyword clashes if their code is ever included in a C++ project.

간단히 말하면 스몰토크가 객체지향이라는 개념을 가져오자 객체지향을 적용한 언어들에서 self 란 키워드를 사용하게 되었다.

근데 이게 새로 생기는 언어면 모르겠는데 C에서는 이러한 개념이 없으므로 개발자들이 스스로 self라는 키워드를 사용해서 객체지향을 사용했는데 C의 슈퍼셋인 C++은 C에서의 self와  명칭이 곂치는것을 피하기 위하여 다른 키워드인 this를 사용하게 된것이고..

뭐 자연스럽게 smalltalk-ish 는 self 를 C++-ish는 this를 사용하게 되었다고한다.

 

 

 

728x90