Python
-
Python 문법 기초 25 - class 포함관계(2)Python 2022. 10. 22. 17:02
예제2) # 냉장고에 음식 담기 - 클래스의 포함관계로 구현 class Fridge: isOpened = False foods = [] # list type으로 담기 def open(self): self.isOpened = True print('냉장고 문 열기') def put(self, thing): if self.isOpened: self.foods.append(thing) # 포함 print('냉장고 안에 음식을 저장함') self.food_list() else: print('냉장고 문이 닫혀 있어 음식을 저장할 수 없어요') def close(self): self.isOpened = False print('냉장고 문 닫기') def food_list(self): for f in self.foods..
-
Python 문법 기초 24 - class 포함관계(1)Python 2022. 10. 22. 17:00
# 클래스의 이해 kor = 100 # 전역 변수(소속이 모듈) def abc(): # 함수(소속이 모듈) a = 10 # 지역변수(소속이 abc 함수) print('함수') class MyClass: # 클래스(소속이 모듈) kor = 90 # 멤버변수(소속이 MyClass 클래스 소속) """ def __init__(self): pass """ def abc(self): print('메소드') def show(self): # kor = 80 # 지역변수(소속은 show 메소드) print(self.kor) print(kor) self.abc() # 메소드를 콜 abc() # 함수를 콜 my = MyClass() my.show() 90 100 메소드 함수 self 는 주소를 의미하며 self.abc()..
-
Python 문법 기초 23 - class(import 사용)Python 2022. 10. 22. 16:57
print('뭔가를 하다가 모듈의 멤버인 클래스를 선언하기') class TestClass: # prototype, 원형클래스 객체 생성. 고유의 이름 공간을 확보 aa = 1 # 멤버변수(멤버필드), public def __init__(self): # 생성자 print('생성자') def __del__(self): # 소멸자 print('소멸자') def printMessage(self): # method name = '한국인' # 지역변수 print(name) print(self.aa) print(TestClass, id(TestClass)) print(TestClass.aa) print() test = TestClass() # 생성자 호출한 후 TestClass type의 객체 생성 됨(자바의 인스..
-
Python 문법 기초 22 - 모듈(module)Python 2022. 10. 22. 16:50
모듈을 모은 것이 라이브러리 그것들이 모인 것이 프레임워크이다. Module : 소스 코드의 재사용을 가능하게 할 수 있으며, 소스코드를 하나의 이름공간으로 구분하고 관리하게 된다. 하나의 파일은 하나의 모듈이 된다. 표준모듈, 사용자 작성 모듈, 제3자(Third party) 모듈 모듈의 멤버 : 전역변수, 실행문, 함수, 클래스, 모듈 a = 10 print(a) def abc(): print('abc는 모듈의 멤버 중 함수') abc() 10 abc는 모듈의 멤버 중 함수 # 표준모듈(내장된 모듈 읽기) import math print(math.pi) print(math.sin(math.radians(30))) import calendar calendar.setfirstweekday(6) # 0~6..
-
Python 문법 기초 20 - 함수 장식자(decorator)Python 2022. 10. 22. 16:36
함수 장식자 (decorator : @ - meta 기능이 있다) 장식자는 또 다른 함수를 감싼 함수이다. 주 함수가 호출되면 그의 반환값이 장식자에게 건네진다. 그러면 장식자는 포장된 함수로 교체하여 함수를 돌려준다. def make2(fn): return lambda:'안녕 ' + fn() def make1(fn): return lambda:'반가워 ' + fn() def hello(): return '홍길동' hi = make2(make1(hello)) # hello의 리턴값을 make1에서 주소로 받고 거기서 다시 실행되서 make2로 주소를 리턴해준다. # make2의 주소를 최종적으로 리턴해준다. print(hi()) print() @make2 @make1 # 함수 위에 @함수명을 입력하면 함..
-
Python 문법 기초 19 - 일급함수와 람다함수Python 2022. 10. 22. 16:31
# 일급함수 : 함수안에 함수, 인자로 함수 전달, 반환값이 함수 def func1(a, b): return a + b func2 = func1 print(func1(3, 4)) print(func2(3, 4)) print() def func3(func): # 가인수로 함수 수신 중(매개변수) def func4(): print('나는 내부함수야~') func4() return func # 반환값이 함수 mbc = func3(func1) # 실인자로 함수(주소) 전달!(인자) print(id(mbc)) print(id(func1)) print(mbc(3, 4)) 7 7 나는 내부함수야~ 1685379150032 1685379150032 7 람다함수 print('Lambda : 축약함수, 이름이 없는 한 줄..
-
Python 문법 기초 18 - 클로저(closure)Python 2022. 10. 22. 16:28
클로저(closure) : scope에 제약을 받지않는 변수를 포함하고 있는 코드 블록이다. 내부함수의 주소를 반환함으로 해서 함수 내의 지역변수를 함수 밖에서 참조 가능 def funcTimes(a, b): c = a * b return c print(funcTimes(2, 3)) kbs = funcTimes(2, 3) print(kbs) kbs = funcTimes print(kbs) print(kbs(2, 3)) print(id(kbs), id(funcTimes)) del funcTimes # 함수 삭제 # funcTimes() # 함수가 삭제되었음으로 에러 발생 print(kbs(2,3)) # 주소, 값은 같지만 새로운 함수이므로 삭제되지 않음 mbc = sbs = kbs print(mbc(2,3..