[python]파이썬 함수형 프로그래밍(일급함수, 고차함수, 클로저)
2020. 7. 11. 19:17
Programming/Python
1. 개념 순수 함수들을 조합하여 전체 프로그램을 구현하는 방식으로 말 그대로 프로그램 내에서 데이터 연산 및 처리를 수학적인 개념에서 이해하여 다루려는 개념 2. 콘셉트 side effect 차단 모든 state를 immutable 하게 만들어 side effect를 사전에 차단하려 합니다. f(x+y) = z 가 있다면 f(x+y) = n 가 절대 불가능하듯 하나의 함수가 단 하나의 정상 값과 동작 결과를 갖도록 합니다. 모든 것을 객체로 취급 함수형 프로그래밍에서는 모든 것을 객체로 취급하기 때문에 함수 자체도 객체로 취급합니다. 따라서 함수형 프로그래밍에서는 함수가 인수로 전달되고, 변수에 할당될 수 도 있으며 반환될 수 있습니다. 보다 쉽고 안전한 동시성 작업 모든 객체들이 immutable 하..
[Python/자료형]시퀀스 자료형 -1. List & tuple, Hash table
2020. 7. 11. 13:20
Programming/Python
I.시퀀스 자료형 요소(elements)가 연속적으로 나열되어 있는 모든 자료형 * 시퀀스 자료형은 모두 인덱스 컨트롤, 슬라이싱 등 공통의 기능을 수행할 수 있습니다. 1) 컨테이너형(Container datatypes) : 서로 다른 자료형을 담을 수 있다. ex.) list, tuple, colletions의 deque, namedtuple, orderdict, counter, defaultdict 등 2) 플랫형(Flat datatypes) : 단일 자료형만 담을 수 있다. ex.) str, int, bytes, bytearray, array.array, numpy.ndarray 1. List tuple, dict와 함께 정말 많이 쓰는 자료형 중 하나 수정 가능(mutable) = not has..
[Python/자료형] tuple+dict == 네임드 튜플(namedtuple)
2020. 7. 4. 17:06
Programming/Python
1. 네임드 튜플 네임드 튜플은 collections 에 내장된 모듈로 값이 변경되지 않는 튜플의 성격과 키와 값을 갖는 딕셔너리의 성격을 모두 갖고 있는 형식입니다. 클래스 형식으로 선언하여 사용합니다. 네임드 튜플은 자료의 양이 많고 여러 정보가 연결되어 있을 때 관리에 굉장한 편의성을 제공합니다. 1. 네임드 튜플 선언 from collections import namedtuple # 네임드 튜플 선언 방법 Point = namedtuple('Point', 'x y z') #Point = namedtuple('Point', ['x', 'y', 'z']) #Point = namedtuple('Point', 'x, y, z') #Point = namedtuple('Point', 'x x class', ..
[python]매직 메서드(magic method)
2020. 7. 4. 16:11
Programming/Python
1. 매직 메서드(special mehod) 클래스 안에 정의할 수 있는 특별한 메서드로 파이썬 내에 이미 만들어져 있는 메서드입니다. 공식문서에서는 special method라 표현하는데 magic method 라는 단어와 혼용해서 사용되고 있는 Built-in 함수입니다. print(int) >>> print(dir(int)) >>> ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattr..
[python/클래스] 클래스와 메소드 2. 각종 메소드의 특징과 사용(인스턴스 메소드, 클래스 메소드, 정적 메소드)
2020. 7. 4. 15:14
Programming/Python
2020/07/04 - [Coder/Python] - [python] 클래스와 메서드 1. 클래스 사용의 장점 [python] 클래스와 메소드 1. 클래스 사용의 장점 1. 객체 지향 프로그래밍 (OOP) 규모가 큰 프로젝트 즉 프로그램을 가정할 떄 함수중심 데이터양이 많아 코드의 중복, 재사용이 발생 협업 시 휴먼에러 발생 가능성이 큼 클래스 중심 = 데이터 중�� leo-bb.tistory.com class Icecream(): """ Icecream class author : london date 2020-07-02 description : class, static, instance method """ # 클래스 변수(모든 인스턴스가 공유) icecream_cnt = 0 icecream_price_..
[python/클래스] 클래스와 메소드 1. 클래스 사용의 장점
2020. 7. 4. 14:44
Programming/Python
1. 객체 지향 프로그래밍 (OOP) 규모가 큰 프로젝트 즉 프로그램을 가정할 때 함수 중심 데이터양이 많아 코드의 중복, 재사용이 발생 협업 시 휴먼에러 발생 가능성이 큼 클래스 중심 = 데이터 중심 개별 객체로 관리하기 때문에 유지/관리/보수가 쉬움 => 항상 클래스 중심이 좋다고 할 수는 없다. 간단한 프로그램 등 작은 규모의 프로그램은 절차 기반 형식으로 짜는 게 더 좋을 때도 많다. 2. 구조별 비교 배스킨라빈스 아이스크림 데이터를 갖고 있다고 생각하면 데이터는 일반적으로 4가지 방식으로 다루게 된다. 일반적인 구조 ice_cream_1 = "Mom is ailen" ice_cream_detail = [ {'taste' : 'choco'}, {'price' : '3,000'}, {'favorit..
[Python/자료형] 집합 자료형 Set (교집합/합집합/차집합)
2020. 6. 28. 17:24
Programming/Python
1. 집합 자료형 python 내에서 집합과 관련된 계산을 처리하거나 문자열/리스트의 중복제거에 사용 순서가 없고, 중복이 불가능한 특징 2. 기본 함수 set_example1 = set([1, 2, 3, 4, 5]) > {1,2,3,4,5} set_example2 = set('helloworld') > {'h','o','e','l','w','d','r'} # 값 추가( .add() ) set_example1.add(6) > {1,2,3,4,5,6} # 다중 값 추가( .update() ) set_example1.update([7,8,9]) > {1,2,3,4,5,6,7,8,9} # 삭제( .remove() ) set_example1.remove(9) > {1,2,3,4,5,6,7,8} 3. 집합 연산 ..