전체 글

전체 글

    파이썬 파일 입출력

    파이썬 파일 입출력

    읽기 모드 : r 쓰기 모드 (기존 파일 삭제) : w 추가 모드 (파일 생성 또는 추가) : a https://docs.python.org/3.7/library/functions.html#open 파일 읽기 f = open('./review.txt', 'r') contents = f.read() print(contents) # print(dir(f)) # 반드시 close 리소스 반환 f.close() open의 close 를 해주지 않아도 리소스를 자동으로 반환해주는 with 문 with open('./review.txt', 'r') as f: # f는 iterable 함 c = f.read() print(iter(c)) print(list(c..

    파이썬 모듈과 패키지

    파이썬 모듈과 패키지

    파일 하나하나를 모듈이라고 볼 수 있으며 모듈들을 디렉토리 구조로 관리 하는것을 패키지라고 한다. 목적에 따라 정리 패키지는 상대 경로, 절대 경로 원칙을 따른다. python2 에서는 디렉토리 하에 init.py 를 만들어 해당 디렉토리가 패키지임을 선언한다. 클래스안의 함수를 사용하는 방법 from 디렉토리.파일명 import 클래스명 호출 : 클래스명.함수명() 클래스 alias 주기 from 디렉토리.파일명 import 클래스명 as alias명 호출 : alias명.함수명() # alias를 준 클래스명을 사용하면 에러 발생 파일째 모듈 가져오기 import 디렉토리명.파일명 보통 aslias 를 준다. as alias명 호출 : alias명.함수() 함수만 가져오기 (가장 권장됨) from 디..

    파이썬 상속, 다중 상속

    파이썬 상속, 다중 상속

    상속 클래스 상속, 다중 상속 파이썬은 다중 상속을 허용한다. 슈퍼클래스(부모) 및 서브클래스(자식) → 모든 속성, 메소드 사용 가능 상속의 사용 이유: 코드를 재사용. 생산성 (유지보수 용이) 여러 클래스가 같은 코드를 공유한다면 부모 클래스를 만들어 상속받아 동일하게 사용할 수 있다. class Human: # class Human(): 과 동일 def __init__(self): pass def eat(self): pass class Man(Human): def __init__(self): super().__init__() # 부모 초기화 class Woman(Human): pass obj.mro() : 클래스의 상속 정보를 리스트 형태로 리턴해준다. object 클래스는 모든 클래스의 부모다 다..

    파이썬 Closure와 Decorator

    파이썬 Closure와 Decorator

    함수 내 (함수 스코프 안)에서 변수를 체크 한다. 변수가 지역 스코프 내에 없는데 전역 변수에 있으면 전역 변수를 이용한다. 만일 같은 변수가 있다면 지역변수가 우선된다 하지만 인터프리터는 유무 만 체크하기 때문에 사용이 먼저 된다면 에러가 발생한다. 아래와 같다. b = 10 def func_v1(a): print(a) print(b) func_v1(10) # 에러 발생하지 않는다. # 결과 # 10 # 10 b = 10 def func_v2(a): print(a) print(b) b = 5 func_v2(5) # 에러가 발생한다. # 결과 # 에러 Closure 클로저 반환되는 내부 함수에 대해서 선언 된 연결 데이터를 가지고 참조하는 방식으로 반환 당시 함수 유효범위를 벗어난 변수 또는 메소드에 ..

    파이썬 함수형 프로그래밍

    파이썬 함수형 프로그래밍

    일급 함수(일급 객체)라고도 한다. (Higher-order function) 파이썬에서는 모든것을 객체로 취급한다. 파이썬 함수의 특징 런타임 초기화가 가능하다. 변수 등에 함수를 할당 가능 (때문에 데코레이터나 클로저 같은 것 사용) 함수 인수 전달 가능 sorted(keys=len) 함수 결과로 리턴 가능 return funcs 함수 객체 예제 팩토리얼의 구현 def factorial(n): &#39;&#39;&#39;Factorial Function -> n : int&#39;&#39;&#39; if n == 1: # n < 2 return 1 return n * factorial(n-1) print(factorial.__doc__) print(factorial.__name__) print(fac..

    파이썬 시퀀스 자료형 (순서가 있는)

    파이썬 시퀀스 자료형 (순서가 있는)

    가변형 자료형이 당연히 비가변형 보다 속도는 느리다. container 형이 flat 보다 느리다. Container : 서로다른 자료형[list, tuple, collections.deque] Flat : 한 개의 자료형[str, bytes, bytearray, array.array, memoryview] 가변(list, bytearray, array.array, memoryview, deque) 불변(tuple, str, bytes) 지능형 리스트(Comprehending Lists) # Non Comprehending Lists chars = &#39;!@#$%^&*()_+&#39; codes1 = [] for s in chars: # 유니코드 리스트 codes1.append(ord(s)) # Co..