본문 바로가기

IT 기술/프로그래밍관련10

[Python] if __name__ == "__main__": 의미 참고 : http://stackoverflow.com/questions/419163/what-does-if-name-main-do http://bytebaker.com/2008/07/30/python-namespaces/ 파이썬 프로그래밍을 보다보면 아래와 같은 문장을 만나곤 한다. 정확하게 어떤 의미인지 알고 싶어 여기저기 검색한 내용을 정리했다. if __name__ == "__main__" 이 문장을 이해하기 위해서는 파이썬의 namespace 라는 개념을 이해해야 한다. namespace 를 얘기하기 이전에 파이썬에서 name(변수명)이 의미하는 것을 생각해보자. 아래와 같이 파이썬에서는 name 에 값을 줄 수 있다. 그리고 값 뿐 아니라 function 과 같은 형태도 name 을 줄 수 있다.. 2014. 9. 17.
[python] snakefood : module dependency check 파이썬의 장점중 하나는 제공되는 엄청난 양의 모듈이다. 각 모듈간에 어떤 의존성이 있는지 확인할 필요성이 생겼는데, 하나씩 파일을 뒤져봐야하는지 고민하다가, 의존성 체크해주는 툴이 있을 것이라는 얘기를 듣고 찾아보았다. snakefood 라는 좋은 툴이 있는 것을 확인했다.(http://furius.ca/snakefood/) 파이썬이 뱀의 이름(사실 뱀과는 아무런 관련이 없지만)이라서 snakefood 인가? 관련 내용을 정리해보았다. snakefood 의 특징 1. Python Parsing 을 위해서 AST(abstract syntax tree) 를 사용한다.2. 모듈을 load 하지 않는다.3. 체크를 위한 script 를 준비할 필요가 없이 파일이 들어있는 디렉토리를 선택해주면 된다.4. 설정이 .. 2014. 6. 25.
[Python] str() 과 repr() 의 차이 파이썬 공부를 시작했다. 숫자를 문자열로 변환시키는 함수를 보면서 궁금한 점이 생겼다. 숫자를 문자열로 변환하는 함수는 str과 repr 이다. str 은 print 문에 의한 출력과 동일한 문자열을 생성해 내고, repr은 변수만 입력해서 17자리 유효 자리를 출력하는 것과 같은 결과를 얻는다 >>> f = 1.23456789123456789 >>> str(f) '1.23456789123' >>> repr(f) '1.23456789123456789' 왜 두가지를 나눠 놨을까 궁금했는데,회사 동료가 아래 링크를 보내주었다. http://satyajit.ranjeev.in/2012/03/14/python-repr-str.html 요약해보면, repr() 은 __repr__ 메소드를 호출하고, str() 이.. 2014. 6. 17.
[bash] script debugging bash script 를 debugging 하는 방법을 설명한다. echo 를 넣어서 디버깅을 할 수도 있지만, 비효율적이다. set -o 옵션을 사용하면 echo 보다 나은 디버깅 기능을 사용할 수 있다. set 옵션 set 옵션은 -o 로 켜고, +o 로 기능을 끈다. 즉 verbose 모드를 on 시킬 경우, set -o verbose, off 시킬 경우 set +o verbose 명령을 사용한다. bash 를 직접 실행할 때, set 옵션을 준 것과 동일한 옵션을 주어 실행할 수 있다. 즉 xtrace 옵션을 사용하고 싶다면, set -o xtrace 라고 주어도 되고, bash -x 이라고 주어도 된다. 아래 표를 참조한다. set -o 옵션 명령행 옵션 동작 noexec -n 명령을 실행하지 .. 2013. 10. 11.