본문 바로가기

python

(17)
python map() map()은 파이썬의 내장함수이며, 여러 개의 데이터를 한번에 다른 형태로 변환하기 위해서 사용된다. 여러 개의 데이터를 담고 있는 list, tuple을 대상으로 주로 사용하는 함수이다. 사용법에 대해서 알아보면 map(변환 함수, 순회 가능한 데이터) map()은 두번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 변환 함수를 적용하여 다른 데이터를 반환한다. 간단한 예제로 보면 # 3개의 dict을 가진 list이다. users = [ {'mail':'test0@test.com', 'name': 'Brett Holland', 'gender': 'M'}, {'mail':'test1@test...
python iterable과 iterator에 대해 파이썬을 사용하다 보면 iterable, iterator 한 객체라고 하면서 많이 들어봤을 거다. 이 두 부분에 대해서 아래에 정리해보겠다. iterable iterable 한 객체는 즉, 반복 가능한 객체라고 알고 있으면 된다. 그러면 반복 가능한 객체는 무엇인가? 대표적으로 우리가 알고 있는 list, tuple, dict 등등 for 문에서 돌아가는 객체들을 생각하면 된다. 앞서 말한 저 3가지 말고도 다른 게 있는데 set, str, bytes, range 가 있다. # iterable 한 객체 예시 # list var_list = [1, 2, 3, 4] var_dict = {'a': 1, 'b': 2} var_set = {1, 2} var_str = 'abc&..
python 내장함수 sort(), sorted() python에서는 리스트를 정렬하는 내장 함수가 있다. sort() 와 sorted() 가 있다. 각각의 의미를 알아보자면 sort() : 리스트를 제자리에서 수정하는 내장 함수 test = [5, 4, 3, 2, 1] test.sort() print(test) # [1, 2, 3, 4, 5] sorted() : iterable로 부터 새로운 정렬된 리스트를 만드는 내장함수 test = sorted([5, 4, 3, 2, 1]) print(test) # [1, 2, 3, 4, 5] sort()와 sorted()의 차이가 있다면 sort()는 리스트에서만 사용할 수 있다. sorted()는 모든 iterable을 정렬 가능할 수 있다. 예를 들어보자면 test = sorted({1: 'A',..
python json 모듈로 json 데이터 다루기 python은 json 데이터를 처리하기 위해 내장 모듈인 json을 사용할 수 있습니다. 일단 json을 사용하기 위해 import json을 선언 해준다. loads() JSON 문자열을 python 객체로 변환할 수 있게 해준다. import json json_data = '''{ "id": 1, "fullname": "Dana", "email": "dana222@test.com", "admin": False }''' json_data = json.loads(json_data) print(json_data) 파일에 저장되어있는 JSON문자열을 읽거나, HTTP 요청의 body를 읽을때 자주 사용함 dumps() python 객체를 json문자열로 변환할 수..
python @decorator에 대해서 데코레이터는 실행하려는 함수의 구조를 수정하지 않고 기존 객체에 새로운 기능을 추가 할 수 있도록 하는 기능이다. def decorator(func): def wrapper(*args, **kwargs): print('전처리') print(func(*args, **kwargs)) print('후처리') return wrapper @decorator def myFunc(): return 'decorator test' # 결과 # 전처리 # decorator test # 후처리 decorator 함수명이 꼭 decorator 일 필요는 없다. 여러개의 decorator 함수를 생성하여 각각 다른 함수에 사용할 수 있다. 그럼 이제 decorator에 대해 알았다면 ..
python 추상 클래스(abstract class) 추상클래스(abstarct class)란? 추상클래스란 미구현 추상메소드를 한개 이상 가지며, 자식클래스에서 해당 추상 메소드를 반드시 구현하도록 강제한다. 상속받은 클래스는 추상메소드를 구현하지 않아도 import할 때까지 에러는 발생하지 않으나 객체를 생성할 시 에러가 발생한다. 추상클래스를 만들기 위한 형식은 아래와 같다 반드시 abc 모듈을 import 해야한다. 추상메소드는 생략하면 기본적인 클래스 기능은 동작합니다만, 추상메소드를 추가한 후에는 객체를 생성하면 에러가 발생한다. 추상 클래스는 인스턴스를 생성할 수 없다. 자식 클래스들이 각각의 독립된 공통적인 기능을 갖출때 사용한다. 각각의 독립된 공통적인 기능이 값을 공유하면 안되므로 구현하지 않은 빈 메소드를 사용한다. (아래 코드 처럼) ..
python 객체지향 프로그래밍 SOLID 설계원칙 SOLID원칙이란? Solid 원칙이란 로버트 마틴이 개발한 객체지향 프로그래밍 설계의 다섯가지 원칙을 말한다. 프로그램을 짜고 난 이후 오랜 시간이 지나서도 다시 유지보수 및 쉬운 확장을 하려고 할때 이 원칙들을 적용하면 작업을 무난하게 할 수 있다. 일단, SOLID의 원칙을 분리 해보면 Single responsibility principle (단일 책임 원칙) 모든 클래스는 단 한가지의 책임만 갖고, 클래스 안에 정의되어 있는 모든 기능은 이 하나의 책임을 수행하는데 집중되어 있어야 한다. 간단하게 하나의 클래스로 한가지만 일하자 이다. 응집도는 높게, 결합도는 낮게 설계하는것이 목표이다. 응집도 - 한프로그램의 요소가 얼마나 뭉쳐있는지, 즉 구성 요소들 사이의 응집력을 말하는것 결합도 - 프로그..
python 객체지향 개발 4가지 특성 객체지향 개발 4가지 특성 객체지향 프로그램을 다루기 위해선 4가지 기본개념이 잡혀있어야한다. 이 네가지 기본을 반드시 지켜야 좋은 객체지향코드가 나온다. 만약, 이 중 한 가지라도 무너지면 객체 지향의 설계가 무너진다. (1) 상속 일반적으로 우리는 상속이라는 말을 많이 들어봤을것이다. 가족간에 재산을 상속한다는 말처럼 프로그래밍에서도 한사람이 다른사람에게 권리와 의무등 일체를 넘겨주는것으로 생각하면 된다. 그럼 이제 프로그래밍적으로 알아보면 상속을 해주는 클래스는 부모 클래스, 상속을 받는 클래스는 자식 클래스라고 한다. 그리고 자식 클래스는 부모 클래스에게 모든 것을 물려 받는다. 물려 받는것은 당연히 변수와 함수일것이다. 그리고 필요하다면 부모 클래스에서 상속 받은 변수와 함수를 바꿔 사용할 수 ..