라벨이 python인 게시물 표시

모듈

모듈 모듈은 임포트시에도 공유된다. 모듈은 문자열로도 임포트 가능하다. re = __import__("module") 모듈은 기본적으로 메모리에 한번 적재되면 그 상태로 유지 되고 원한다면 재적재할수 있다. reload(module) 파이선 해당파일 실행시 해당 __name__ = "__main__" 이란 이름을 가진다. 이를 이용하여 다음과 같이 정의하면 if __name__ == '__main__': #실행 명령 최상위 모듈일때만 실행명령을 작동시키고 임포트 시에는 작동하지 않도록 처리가능하다. 모듈별로 독립적으로도 수행가능하고 다름 모듈에 호출되어서도 사용가능한것이 파이선의 좋은 특징중 하나이다. 패키지 __init__.py 해당 패키지의 모든 초기값을 설정하고 __all_=[module01, module02..] 를 통해 import* 선별적으로 모듈임포트를 가능하게 할수있다.

함수

내부값 변경이 가능한 리스트 타입일 경우를 제외하고는 모든 함수에 전달된 인수값은 레퍼런스 값으로 함수 내부에서 변경은 인수에 적용되지 않는다. return 되지 않는 함수의 반환값은 언제나 NONE이다. return 문은 어떤 객체라도 반환할수 있다. lambda *args : 튜플형식으로 인수를 받는다. **args : 사전(map)형식으로 인수를 받는다. map 함수 쌍으로 이루어진 인수를 매핑한다. zip 함수 쌍으로 이루어진 인수를 매핑하는데 짧은쪽기준으로 매핑하고 나머진 버린다. filter 함수 연산자와 튜플 또는 리스트 인자를 받아 연산자로 필터링 후 남는 값을 받는다. reduce 함수 누적연산을 실행한다.

python eval/exec/compile

eval a=1 a=eval('a+4') print a >>> a : 5 exec a=1 exec 'a=a+4' print a >>> a : 5 compile eval/ exec 문자열 실행 함수를 컴파일 해서 사용한다.

이클립스에서 파이썬 한글 문제

[개발/개발툴] PyDev 에서 단순히 '한글' 을 찍어보려고 하는데, File "C:\Documents and Settings\keidw\My Documents\workspace\PythonTest\src\test.py", line 6     ?     ^ SyntaxError: invalid syntax 문법 에러가 발생을 하네요. 이유도 없이 ? 를 입력했을리가 없잖아요?-_-; 검색엔진에서 사례를 찾아보니 한글 문제는 문서 설정에 인코딩 옵션이 잘 못 되었을 때 발생할 수 있다고 하더군요. Windows - Preferences - General - Content Types - Text 에서 , 해당 파일의 Default encoding 을 EUC-KR 로 입력하고 Update 해주라고 해서 해봤는데, 소용이 없었습니다. EUC-KR 은 리눅스의 경우이고, 윈도우의 경우에는 MS949 라고 해줘야 하더군요. 이렇게 해주면 문서상의 '한글 깨짐' 현상은 해결됩니다. 우측 하단의 encoding 부분에 MS949 입력 하지만, 여전히 ? 가 삽입되면서 문법 에러가 발생하는 현상은 해결되지 않았습니다. 그래서 살펴본 결과 원인을 확인했습니다. 파이썬에서 한글 사용을 위해 일반적으로 맨 윗줄에 삽입해주는 # -*- coding: cp949 -*- 부분에 문제가 있었습니다. cp949 가 아니라 ms949 로 해줘야 하네요. # -*- coding: ms949 -*- 이렇게 바꿔주니까 아무 문제 없이 한글 출력이 됩니다. 한글 나온다! 확실히 한국 개발자들은 이 한글 문제 때문에 언제나 다른 나라 개발자들 보다 조금은 더 삽질(공부)하게 되는 것 같네요;