SW개발/Python

[Python]The Zen of Python - 파이써닉한 코드

파이썬에서의 디자인 원칙을 잘 나타내는 The Zen of Python이라는 것이 존재한다. 여기에 존재하는 원칙들을 바탕으로 자신이 작성한 코드가 파이써닉한 코드인지 아닌지에 대해서도 생각해볼 수 있을 것이다.

 

https://www.python.org/dev/peps/pep-0020/

 

PEP 20 -- The Zen of Python

The official home of the Python Programming Language

www.python.org

 

파이썬 shell에서 import this를 입력하면 The Zen of Python 이스터에그를 확인할 수 있다.

>>> import this

Beautiful is better than ugly. 
아름다운 것이 추한 것보다 낫다.
Explicit is better than implicit.
명시적인것이 함축적인 것보다 낫다.
Simple is better than complex.
단순한것이 복잡한 것보다 낫다.
Complex is better than complicated.
복잡한 것이 난해한 것보다 낫다.
Flat is better than nested.
단조로움이 중첩된 것보다 낫다.
Sparse is better than dense.
여유로운것이 밀집된 것보다 낫다.
Readability counts.
가독성은 중요하다.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
규칙을 깨야할 정도로 특별한 경우는 없다. 비록 실용성이 이상을 능가하더라도.
Errors should never pass silently.
Unless explicitly silenced.
오류는 결코 조용히 지나가지 않는다. 조용히 침묵하지 않는한.
In the face of ambiguity, refuse the temptation to guess.
모호함을 마주하고 추측하려는 유혹을 거절하라.
There should be one-- and preferably only one --obvious way to do it.
문제를 해결할 하나의 바람직하고 명백한 방법이 있을 것이다.
Although that way may not be obvious at first unless you're Dutch.
비록 당신이 우둔해서 처음에는 명백해보이지 않을 수도 있겠지만.
Now is better than never.
Although never is often better than *right* now.
지금 하는 것이 전혀 안하는 것보다 낫다. 비록 하지 않는 것이 나을때도 있지만.
If the implementation is hard to explain, it's a bad idea.
설명하기 어려운 구현이라면 좋은 아이디어가 아니다.
If the implementation is easy to explain, it may be a good idea.
쉽게 설명할 수 있는 구현이라면 좋은 아이디어일 수 있다.
Namespaces are one honking great idea -- let's do more of those!
네임스페이스는 정말 좋은 아이디어이다. 자주 사용하자!

 

728x90