python은 왜 그토록 underscore를 좋아하나?
글쓴이: ed.netdiver / 작성시간: 수, 2006/09/06 - 3:39오후
python은 분명 매력적인 언어와 module들로 무장한 훌륭한 언어임에 틀림이 없습니다.
하지만, 제가 python에서 제일 싫어하는 것, 혹은 문자를 대라면 단연 underscore('_')를 꼽겠습니다.
이 underscore는 실로 python에 있어 뺄래야 뺄수 없는 아주 중요한 문자로서,
간단히는 이전 결과값부터 시작해서 각종 module, source에 안들어가는데가 없습니다.
class의 init, 내장 module등등...
이정도이다보니, 이렇게 괜찮은 언어에서 왜 underscore를 그토록 자주, 편집증스럽게 사용하는건지 모르겠습니다.
제게 있어 underscore는 python code의 가독성을 현저히 떨어뜨리고, 일관된 구조내에 뭔가 모르는 내장기능이 있을것같다는 망상에 빠뜨리는, 그런 암적인 존재입니다.
underscore를 사용하지 않을수는 없었던건지...
오늘은 문득 python code를 해석하다가, 그간 갑갑해했던 것이 떠올라 이렇게 무의미하게 적어봅니당.^^;
댓글
흠...
파이썬 만든 사람이 편집증 이라기 보다 글쓰는 분께서 편집증 같아 보인다는 =3=3=3
켁^^; 그럴지도
켁^^; 그럴지도 모르겠네용^^;
=33
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
원래 뱀은 바닥을
원래 뱀은 바닥을 기죠. ^^;
오호~ 그런
오호~ 그런 이유가!^^;
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
오...
그런 ^^ 해석이
상당히 설득력 있는
상당히 설득력 있는 말씀이네요. ^_^
c언어도 언더스코어 많이 사용합니다.
_print같이 내부함수에 _사용하기도 하고,
즐린
흐흐, 네 물론
흐흐, 네 물론 그렇죠.
거기다 펄류의 script언어들은 @#$%^&*등 거의 특수문자의 도배다시피 하기도 하고 말이죠.
근데, python은 뭐랄까 댄디한 언어잖아요? indent나 가독성에 목숨걸고 말이죠..
name mangling도 잘하지 그러냐고 권고도 많고...
그런데 유독 _때문에 코드가 꼭 꽁수라도 쓰는것인양(실제론 그게 아닌데도) 보이게끔 되어버린다 이거예요.
물론, 위에 어느분이 말씀하셨듯, 제 혼자만의 편집적 성향일수도 있겠지만,
저는 그부분, 뭐랄까 뉘앙스로서의 사파스러움...(뭔소린지..), 이 좀 그렇게 느껴지더군요..^^;
하하^O^//
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
_, __는 클라이언트가 알 필요 없는 부분에만 쓰는게 아닐까요?
c/c++에서도 그렇지만 _로 시작하는 멤버들은 주로 내부적으로 사용하고,
클라이언트 프로그래머들이 사용하지 않는 것이 묵시적인 의미 같습니다.
파이썬의 class에서 __init__, __str__, ... 이런 멤버들도 (클래스를 만드는 쪽보다는) 클래스를 사용하는 쪽에서 되도록 보거나 명시적으로 사용하지 말라는 캡슐화의 요소가 있지 않을까 합니다.
따라서 가독성에 영향을 미치는 것은 의도적일 것 같습니다. 일부러 이 멤버들은 private이나 내부적인 것이니 특별히 알려고 하지 마시오.. 이런 것처럼요.
네 바로
네 바로 그렇습니다.
그리고, 예를들면 override같은 경우가 비일비재한데, 그걸 talpo님이 말씀하신 것처럼, 내부적 용도로 묵시적 hide를 해버린것 같은 결과가 _의 사용으로 남고, 또 이것이 계속 코드에 사용되는게, python이란 언어의 기본 방침과 위배되는것이 아닌가 싶은거죠.^^;
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
궁금한 것이...
_, __ 등이 왜 가독성을 떨어뜨리는지는 납득이 안됩니다.
자세한 설명 요망!
제 생각에 이건 ed.bsd님 IDE의 폰트 때문이 아닐까 생각됩니다.
God said it. I believe it. That settles it.
여친이 길르는 용..
흐, 저는 사실 ide는
흐, 저는 사실 ide는 따로 안씁니다.
editor는 주로 emacs이고, 보는 용도로는 vi를 씁니다.
idle보다는 wx pycrust, console에선 ipython만 씁니다.^^;
그러니 폰트문제는 아니구요...
바로 위에 talpo님께서 말씀하신 바로 그부분이 제가 이야기하고자 했던것과 정확히 일치합니다.
요컨대, 소스파일 자체의 가독성도 가독성이지만, 내장함수로 hide시켜놓은것(처럼 보이도록 _를 써놓고는)을,
그걸 매우 자주 많이 실 코드에서 사용하다보니, 이건 굳이 _로 가려놓은게 의미가 없어질 지경이고,
또 그게 가독성과 코드의 댄디한 일관성을 해치고, 저같은 코더의 입장에서 보면 python의 기본 방침과 대치되는 듯이
여겨지게 만든다는 겁니다.^^;
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
댓글 달기