본문 바로가기
728x90

language64

[Python] closure(클로저)와 Decorator(데코레이터), 로깅(logging) 개념과 예제 1. closure(클로저)란? 내부 함수를 결과로 반환할 때, 그 내부 함수를 closure라고 한다. 사용 되는 곳 콜백 함수에 사용 지연된 평가 데코레이터 함수 def add(x, y): def do_add(): print('Adding', x, y) return x + y return do_add do_add()함수가 closure함수 클로저는 나중에 함수가 올바로 작동하는 데 필요한 모든 변수의 값을 유지한다. 클로저를 함수와 그 함수가 의존하는 변숫값을 저장하는 환경이 합쳐진 것으로 생각할 수 있다. closure를 함수로 구현 class Outer: def __init__(self, num): self.num = num def __call__(self): print(self.num) Oute.. 2022. 2. 28.
[Python] lambda 함수(익명 함수) 1. lambda 함수란? 파이썬에서는 lambda를 통해 이름이 없는 함수를 만들 수 있습니다. lambda를 통해 만들어진 함수는 기존의 def 키워드를 통하여 리터럴 표기법에 따른 함수를 생성하는 방법과 비교했을 때 코드의 간결함과 메모리의 절약이 장점이라고 할 수 있습니다. 함수객체를 변수에 담은 시점에서, 함수객체는 메모리에 올라가서 변수를 통해 자신이 호출되기를 기다리게 됩니다. 단 한번만 사용되는 함수의 경우 불필요한 메모리가 낭비되게 됩니다. lambda 함수는 결과를 return키워드 없이 자동으로 return해줍니다. lambda x : x + 1 lambda는 이름이 없고 저장된 변수가 없기에 재사용할 수는 없는데, 변수에 담아 재사용 할 수는 있습니다. func = lambda x:.. 2022. 2. 28.
[Python] module, 사용법, if __name__=="__main__": ,package 개념 1. 모듈(module)이란? 함수나 변수 또는 클래스를 모아 놓은 파일 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일 코드의 특정 부분을 분리해서 따로 모아놓은 것 파일 하나를 1개의 모듈로 봄 import 문을 통해 모듈 사용이 가능 가독성을 위해서 맨위에 import문을 넣음 1) 모듈 불러오기 결국 모듈은 파이썬 파일이고 이 모듈을 불러오는 것이 중요 import 모듈(파이썬 파일명) import는 현재 디렉터리에 있는 파일이나 파이썬 라이브러리가 저장된 디렉터리에 있는 모듈만 불러올 수 있다.(현재 디렉터리의 파이썬 파일, 가상환경 내 site-packages에 있는 파이썬 파일) def add(a, b): return a + b 해당 코드가 module1에 있다고 가정 했.. 2022. 2. 18.
[Python] *args, **kwargs은 어떤 거고, return된 객체의 type은 어떻게 나오는지 정리 1. *args란? arguments의 줄인말로 가변 인자를 위한 변수 def add(*args): result = 0 for i in args: result += i print(result) 위와 같은 매개변수로 *args가 들어가 있는 함수를 본 적이 있을 것이다. 해당 args는 통상적으로 가변 인자를 위한 변수의 이름이지 *whateveryouwant, *spidyweb 과 같은 변수명을 채택해도 됨(앞의 *가 중요) 앞에 *를 붙이면 가변 인자를 위한 변수로 인식 되어 여러개의 매개 변수를 입력 할 수 있게 됨 물론, 입력하지 않아도 됨 *args에 값을 집어 넣으면 args 변수는 튜플 형태가되고 그 안에 값이 담기게 됨 1,2,3을 전달 인자로 입력 아무것도 전달 인자로 입력하지 않음 그렇다.. 2022. 1. 27.
[Python] 콜백함수란? map함수란? CallBack function 함수의 인자로 사용되는 함수를 callback 함수라고 한다. MapReduce의 Map함수, 공백을 기준으로 입력을 받아 int타입으로 변환하는 Map함수 같은 기능을 나타내며 이렇게 map(function , iterable) 처럼 함수내에서 함수를 인자로써 사용되는 함수를 콜백 함수라고 함 map(function, iterable) 함수 function에는 사용자 정의 함수가 올 수 있고, 내장함수도 올 수 있으며, 람다식으로도 표현이 가능하다 list(map(lambda x:x**2, range(5))) A,B = map(int, input().split()) *iterable 객체란? list, dict, set, str, bytes, tuple, range 타입.. 2022. 1. 24.
[Python] list, dictionary, tuple 내장 함수 zip으로 다루기 zip 다루기 zip은 두 개의 리스트를 서로 묶어줄 때 사용합니다. list_1 = ["a","b","c","d"] list_2 = [1,2,3,4,5,6,7] #list 2개를 묶어 새로운 tuple들의 list 생성 new_list = list(zip(list_1, list_2)) print(new_list) #tuple들의 리스트인 [('a', 1), ('b', 2), ('c', 3), ('d', 4)] 출력 #index가 작은 쪽에 맞춰서 출력된다. 다음과 같이 묶인 list의 각 값을 출력 할 수도 있습니다. list_1 = ["a","b","c","d"] list_2 = [1,2,3,4,5,6,7] #tuple들의 list는 각 값을 출력할 수 있다. for n, p in zip(list_1.. 2022. 1. 20.
[python] python으로 MYSQL 연결하기(windows) with odbc, mysql-connector-python 1. mysql-connector-python 1) mysql-connector-python library 설치 pip install mysql-connector-python 2) mysql 연결 미리 만들어 둔 mysql DB의 정보를 mysql connection 객체에 담는다 import mysql.connector mydb = mysql.connector.connect( host="ip주소", user="계정 아이디", passwd="계정 비밀번호", database="생성한 DB이름" ) 3) 데이터 조회해보기 def select_all(): #조회 함수생성 cur = mydb.cursor() #커서 객체생성 sql ='''SELECT * FROM DB.Table명''' #조회 SQL cur.e.. 2022. 1. 20.
[python] 클래스(class), 객체(object), 인스턴스(instance), 매개변수 self, 생성자(constructor), 상속(inheritance), 오버라이딩(overriding) 1. 클래스란(class)? python은 객체지향을 지원하고, 함수형 프로그래밍도 가능한 언어 class는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀 *객체를 정의하기 위한 상태(*멤버 변수)와 *메서드(함수)로 구성 함수와 비교했을 때, 클래스 사용의 장점 함수가 점차적으로 늘어 나게 된다면 무슨 역할을 하는지 의미를 파악하기 어려워지므로, 클래스를 통해 메소드를 구현하게 되면, 비슷한 역할을 하는 것을 한 곳에 모을 수 있게됨 재사용이 가능하다는 것이 가장 큰 장점 *객체 vs 인스턴스 객체란 클래스로 규정된 인스턴스, 변수 대신 실제값을 가짐 인스턴스란 클래스로 만든 객체 인스턴스는 특정 객체가 어떤 클래스의 객체인지를 관계 위주로 설명할 때 사용 a .. 2021. 11. 29.
[Python] (.ipynb) jupyter notebook 파일 형식 -> (.py) 파이썬 스크립트 변환하기 .ipynb 파일은 jupyter notebook에 사용되는 파일 형식으로써 key:value 형식인 json파일 형식으로 표현됩니다. 따라서 git hub 에 올리게 될 경우 다음 사진과 같이 표현되어 python code를 알아보기 힘듭니다. 그럼 .ipynb를 .py로 변환 해보겠습니다. 1. nbconverter 다운받기 1) pip를 사용할 수 있는 jupyter notebook 내의 터미널로 접속 2) pip install nbconvert 2. .py로 변환하기 1) 디렉토리 이동 변환하기 전에 터미널에서 cd (ipynb가 있는 디렉토리) 를 통해 변환할 .ipynb파일이 있는 디렉토리로 이동 2) 변환하기 jupyter nbconvert --to script gittest.ipynb 파일.. 2021. 10. 26.
728x90